加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

JavaScript 对象

发布时间:2023-03-08 13:13:17 所属栏目:教程 来源:
导读:对象 指包含数据和用于处理数据的指令的数据结构. 对象有时也指现实世界中的一些事, 例如在赛车游戏当中一辆车或者一幅地图都可以是一个对象。
JavaScript 中的对象由属性和方法组成。

属性可以是任意 JavaScrip
对象 指包含数据和用于处理数据的指令的数据结构. 对象有时也指现实世界中的一些事, 例如在赛车游戏当中一辆车或者一幅地图都可以是一个对象。
JavaScript 中的对象由属性和方法组成。

属性可以是任意 JavaScript 中的数据类型,方法则是一个函数。

1. 创建对象
对象的格式如下:

{
  prop1: 'value1',
  prop2: ,
  prop3: {},
  method1: function() {
  },
}
其中 prop1、prop2、prop3 都是属性,method1 是方法,属性是任意的数据类型,方法则是一个函数。

可以看到一个属性或者方法,在其名字与值中间采用冒号 : 分隔,属性和方法之间采用逗号 , 分隔。

通常属性和方法的名字会被称为属性名与方法名,属性的值称为属性值,方法的值则直接叫做 方法。

对象符合 key/value 的结构,一个 key 对应一个 value,这种结构也被称为键值对,属性名和方法名都是 key,他们的值都是 value。

注意:在 JavaScript 的对象中,方法和属性的表示其实是一样的。

一个属性的值如果是一个函数,则就把这个属性称之为方法,只是称呼上的不同。

对象最简单的创建方式就是使用对象字面量。

var person = {};
以上创建了一个最简单的空对象。

对象在 JavaScript 中的应用范围非常广。

可以试想一下,如果需要用变量描述一个人的信息,包括名字、性别、年龄、双亲信息,同时就要表示这个人的一些行为,如说话。

显然数值、字符串、布尔类型这些数据类型是不太适合描述这样一个人的。

这个时候就可以考虑使用对象,也就是说当需要描述的事物变得复合(无法使用单一的数据类型描述的时候),就可以考虑使用对象存储数据。

var person = {
  'name': '小明',
  'age': ,
  isAdult: false,
  sex: 'man',
  hobby: ['eat', 'sleep', 'play doudou'],
  parents: {
    mather: {
      name: '大红',
    },
    father: {
      name: '大明',
    },
  },
  say: function() {
    console.log('我叫' + this.name + ',我今年' + this.age + '岁了。');
  },
};
console.log(person); // 在控制台可以观察 person 对象
上面这个 person 变量就是一个对象,用于描述一个人,这个人具有 name、age 等属性与方法。

在控制台输出对象后,可以对其展开,观察他的内容。

其中部分属性在声明的时候,属性名上加上了引号,这在 JavaScript 中是被允许的,但一般情况下不会加上引号,原因之一是没有必要加,不应该与字符串混淆,另外一点就是可以消除初学者对 JSON 和 JavaScript 对象在理解上的歧义。

2. 操作对象
创建对象主要是为了设置、访问对象的属性值,调用对象的方法等。

2.1 访问对象的属性值
访问属性有 2 种方式:

对象.属性名
对象['属性名']
var obj = {
  key: 'value',
  say: function() {
    console.log('never 996');
  },
};
console.log(obj.key); // 输出:"value"
console.log(obj['key']); // 输出:"value"
obj.say(); // 输出:"never 996"
obj['say'](); // 输出:"never 996"
这两种方式都很常用。第二种通常会应用在需要用变量确定属性名的时候去使用。

var person = {
  age: ,
  name: '鸽手',
};
Object.keys(person).forEach(function(key) {
  console.log(person[key]);
});
以上就是使用第二种方式的场景之一,使用 Object.keys() 获取到 person 的所有属性名组成的数组,对数组做遍历拿到每一个属性名并放在一个变量中,再通过变量访问到对应的属性值。

当试图访问一个不存在的属性的时候,则会返回 undefined。

var obj = {};
console.log(obj.value); // 输出:undefined
2.2 设置对象的属性值
设置属性值也有 2 种方式:

对象.属性名 = 属性值
对象['属性名'] = 属性值
设置属性值的方式与访问值很相似,只是多了一个赋值操作。

设置属性值按照如下规则进行:

如果对象中不存在这个属性,则创建这个属性并赋值
如果对象中存在这个属性,则直接赋值
var person = {
  age: ,
};
person.name = '阿花';
person['hobby'] = ['eat', 'play doudou'];
console.log(person);
person.age = ;
console.log(person);

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章