對(duì)象的動(dòng)態(tài)特性
在js中可以動(dòng)態(tài)的對(duì)對(duì)象屬性進(jìn)行增加筒狠、修改和刪除
訪問(wèn)對(duì)象的方法
01 可以使用點(diǎn)語(yǔ)法訪問(wèn)
02 可以使用[]語(yǔ)法訪問(wèn)猪狈,注意對(duì)象的屬性必須是字符串,如若不是字符串辩恼,會(huì)將key值當(dāng)做變量去作用域內(nèi)查找雇庙,存在會(huì)賦值給key,不存在會(huì)報(bào)錯(cuò)灶伊。
代碼示例
//01 創(chuàng)建對(duì)象
var obj = {
name:"劉德華",
age:60
};
//02 動(dòng)態(tài)的為對(duì)象添加屬性
obj.height = "180cm";
console.log(obj.height);
//03 動(dòng)態(tài)的為對(duì)象添加方法
obj.maiMeng = function () {
console.log("華仔會(huì)賣萌噢");
};
obj.maiMeng();
//04 修改屬性的值:如果設(shè)置的屬性以前不存在,那么就是添加,如果設(shè)置的屬性已經(jīng)存在了,那么就是修改
obj.name = "王寶強(qiáng)";
console.log(obj.name);
//05 刪除屬性
delete obj.name;
console.log(obj.name); //undefined
console.log(delete obj.name); //返回值為布爾值疆前,true為刪除成功
關(guān)鍵字in與delete
in關(guān)鍵字
- 判斷屬性是否存在于對(duì)象中,注意所有的key值都為字符串
- for in 循環(huán)中聘萨,遍歷對(duì)象
代碼示例
var obj = {
name:"張三",
age:18
};
for(k in obj)
{
console.log(k,obj[k]);
}
//檢測(cè)obj對(duì)象中是否存在name這個(gè)屬性
console.log("name" in obj);
注意:in關(guān)鍵字用于操作數(shù)組的時(shí)候檢測(cè)的是索引值并非數(shù)組元素
delete關(guān)鍵字
刪除對(duì)象中的屬性 delete 對(duì)象.屬性
-
刪除沒(méi)有使用var聲明的變量
(1.通常情況下竹椒,聲明變量需要使用var關(guān)鍵字,默認(rèn)所有的全局變量都是window的屬性米辐;2.特殊情況下胸完,不使用var聲明的變量默認(rèn)為全局變量)
返回值為boolean類型,true表示刪除成功
注意點(diǎn):
- 思考:使用var聲明的全局變量可以被刪除嗎翘贮? 不可以
- 直接添加在window上面的屬性可以被刪除嗎舶吗? 可以
*?jiǎng)h除對(duì)象中不存在的屬性,返回值為rue