1.对象基础
var person = {
name : ['Bob', 'Smith'],
age : 32,
gender : 'male',
interests : ['music', 'skiing'],
bio : function() {
alert(this.name[0] + ' ' + this.name[1] + ' is ' + this.age + ' years old. He likes ' + this.interests[0] + ' and ' + this.interests[1] + '.');
},
greeting: function() {
alert('Hi! I'm ' + this.name[0] + '.');
}
};
* 对象成员的值可以是任意的,在我们的person对象里有字符串(string),数字(number),两个数组(array),两个函数(function)。前4个成员是资料项目,被称为<strong>对象的属性(property)</strong>,后两个成员是函数,允许对象对资料做一些操作,被称为<strong>对象的方法(method)</strong>
####1.1点表示法:
>```
person.age
person.interests[1]
person.bio()
- 点表示法,来访问对象的属性和方法。标识可以是属性名称(name),或者是数组属性的一个子元素,又或者是对象的方法调用。
1.2中括号表示法:
.点表示法
person.age
person.name.first
[]括号表示法
person['age']
person['name']['first']
* 这看起来很像访问一个数组的元素,从根本上来说是一回事儿,你使用了关联了值的名字,而不是索引去选择元素。难怪对象有时被称之为关联数组(associative array)了——对象做了字符串到值的映射,而数组做的是数字到值的映射。
####1.3设置对象成员
>目前我们仅仅看到了如何访问对象的成员,而你其实也可以设置对象成员的值,通过声明你要设置的成员,像这样:
person.age = 45
person['name']['last'] = 'Cratchit'
设置成员并不意味着你只能更新已经存在的属性的值,你完全可以创建新的成员,尝试以下代码:
person['eyes'] = 'hazel'
person.farewell = function() { alert("Bye everybody!") }
<b>`括号表示法`</b>一个有用的地方是它不仅可以动态的去设置对象成员的值,还可以动态的去设置成员的名字。
这是使用点表示法无法做到的,点表示法只能接受字面量的成员的名字,不接受变量作为名字。
---
>MDN https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/Objects/Basics