1.對象基礎(chǔ)
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)口予,數(shù)字(number),兩個(gè)數(shù)組(array)涕侈,兩個(gè)函數(shù)(function)沪停。前4個(gè)成員是資料項(xiàng)目,被稱為<strong>對象的屬性(property)</strong>裳涛,后兩個(gè)成員是函數(shù)木张,允許對象對資料做一些操作,被稱為<strong>對象的方法(method)</strong>
####1.1點(diǎn)表示法:
>```
person.age
person.interests[1]
person.bio()
- 點(diǎn)表示法端三,來訪問對象的屬性和方法舷礼。標(biāo)識可以是屬性名稱(name),或者是數(shù)組屬性的一個(gè)子元素,又或者是對象的方法調(diào)用郊闯。
1.2中括號表示法:
.點(diǎn)表示法
person.age
person.name.first
[]括號表示法
person['age']
person['name']['first']
* 這看起來很像訪問一個(gè)數(shù)組的元素妻献,從根本上來說是一回事兒蛛株,你使用了關(guān)聯(lián)了值的名字,而不是索引去選擇元素育拨。難怪對象有時(shí)被稱之為關(guān)聯(lián)數(shù)組(associative array)了——對象做了字符串到值的映射谨履,而數(shù)組做的是數(shù)字到值的映射。
####1.3設(shè)置對象成員
>目前我們僅僅看到了如何訪問對象的成員至朗,而你其實(shí)也可以設(shè)置對象成員的值屉符,通過聲明你要設(shè)置的成員,像這樣:
person.age = 45
person['name']['last'] = 'Cratchit'
設(shè)置成員并不意味著你只能更新已經(jīng)存在的屬性的值锹引,你完全可以創(chuàng)建新的成員矗钟,嘗試以下代碼:
person['eyes'] = 'hazel'
person.farewell = function() { alert("Bye everybody!") }
<b>`括號表示法`</b>一個(gè)有用的地方是它不僅可以動態(tài)的去設(shè)置對象成員的值,還可以動態(tài)的去設(shè)置成員的名字嫌变。
這是使用點(diǎn)表示法無法做到的吨艇,點(diǎn)表示法只能接受字面量的成員的名字,不接受變量作為名字腾啥。
---
>MDN https://developer.mozilla.org/zh-CN/docs/Learn/JavaScript/Objects/Basics