delete運(yùn)算符可以刪除對(duì)象的屬性
代碼如下:
delete person.age //即person不再有屬性age
delete person['age'] //或者這樣
delete只是斷開屬性和宿主對(duì)象的聯(lián)系,而不會(huì)去操作屬性中的屬性 看到delete a.p之后b.x仍然為1
delete只能刪除自有屬性,不能刪除繼承屬性(要?jiǎng)h除繼承屬性必須從定義這個(gè)屬性的原型對(duì)象上刪除它,當(dāng)然,這會(huì)影響到所有繼承來自這個(gè)原型的對(duì)象)
當(dāng)然了,可配置的屬性才能用到delete
比如
2.檢測(cè)屬性
使用 “in"
in 運(yùn)算符希望它的左操作數(shù)是一個(gè)字符串或者可以轉(zhuǎn)換為字符串,希望它的右操作數(shù)是一個(gè)對(duì)象
使用hasOwnProperty()或者propertyIsEnumerable() --- 后者是前者的增強(qiáng)
顧明思議
只有檢測(cè)到是自由屬性并是可枚舉的屬性時(shí),后者才返回true
當(dāng)然,也可以直接用 ”!=="運(yùn)算符判斷
3.枚舉屬性
拓展1:
每個(gè)對(duì)象都有與之相關(guān)的原型(prototype)、類(class)、可擴(kuò)展性(extensible)
要檢測(cè)一個(gè)對(duì)象是否是另一個(gè)對(duì)象的原型(或處于原型鏈中),可以使用isPrototypeOf()方法
當(dāng)然,isPrototypeOf()方法和instanceof運(yùn)算符非常類似
instanceof運(yùn)算符希望它的左操作數(shù)是一個(gè)對(duì)象,右操作數(shù)標(biāo)識(shí)對(duì)象的類。如果左側(cè)的對(duì)象是右側(cè)類的實(shí)例,則表達(dá)式返回true,否則返回false
拓展2:
對(duì)象的類屬性是一個(gè)字符串,用以表示對(duì)象的類型信息
一般調(diào)用toString()方法后返回形如 [object class]的形式
比如
代碼如下:
var obj = {x:1,y:2};
console.log(obj.toString());//[object Object]
所以要想獲取對(duì)象的類,就可以通過返回的字符串中找出 “class"字段 使用 slice(8,-1)
比如
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com