給對(duì)象動(dòng)態(tài)添加屬性
當(dāng)一個(gè)對(duì)象需要某個(gè)屬性的時(shí)候,可以用兩種方式為其添加屬性
直接使用對(duì)象名.屬性名 = 值 這種形式,為對(duì)象添加對(duì)應(yīng)的屬性
使用關(guān)聯(lián)數(shù)組語(yǔ)法 對(duì)象名["屬性名"] = 值
//o是一個(gè)沒(méi)有任何自定義屬性的對(duì)象
var o = {};
//現(xiàn)在想讓他擁有name age gender等屬性
//直接使用 對(duì)象名.屬性名 = 值
o.name = "張三";
//使用 對(duì)象名["屬性名"] = 值
o["age"] = 18;
//可以通過(guò)打印查看效果
console.log(o.name);
console.log(o.age);
注意:
當(dāng)要?jiǎng)討B(tài)的為一個(gè)對(duì)象添加屬性的時(shí)候惊豺,必須使用關(guān)聯(lián)數(shù)組的形式
//接收到了用戶的輸入
var str = prompt("請(qǐng)輸入屬性名");
o = {};
//o.str = "這是一個(gè)新屬性"; //這么寫(xiě)是不對(duì)的,會(huì)給對(duì)象新增一個(gè)str屬性
//正確的寫(xiě)法如下
o[str]="這是一個(gè)新屬性";
對(duì)象的訪問(wèn)形式
點(diǎn)語(yǔ)法:對(duì)象名.屬性名
關(guān)聯(lián)數(shù)組: 對(duì)象[屬性名]
var o ={
name :"張三"禽作,
sayHello:function(){
console.log("你好尸昧,我叫"+this.name);
}
};
//點(diǎn)語(yǔ)法
console.log(o.name);
//關(guān)聯(lián)數(shù)組語(yǔ)法
console.log(o["name"]);
//這兩種用法同樣適用于方法
o.sayHello();
o["sayHello"]();
//可以對(duì)這個(gè)對(duì)象的屬性進(jìn)行遍歷,如果是值就打印旷偿,如果是方法就調(diào)用
for(var k in o){
if ( typeof o[ k ] == 'function' ) {
o[ k ]();
} else {
console.log( 'log: ' + o[ k ] );
}
}