1.當屬性存在 configurable:true delete
命令會返回true
var obj={a:1}; delete obj.a //true console.log(obj);//{}
2.當屬性存在 不能刪除情況 delete
命令會返回false
var obj=Object.defineProperty({}, 'p', { value: 123, configurable: false //不能刪除當前p屬性 }); obj.p // 123 delete obj.p // false
簡單介紹一下:Object.defineProperty(obj,prop,desc)
obj:當前對象
prop:新屬性或者需要修改的屬性
desc:屬性描述符
3.當屬性不存在 delete
命令會返回true 所以不能根據delete命令的返回結果確定該屬性是否存在
var obj={}; delete obj.p//true
4.不能刪除對象的繼承屬性
var obj={}; delete obj.toString();//true obj.toString //function toString() { [native code] }