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] }