javascript 删除对象的属性 delete

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

 

猜你喜欢

转载自www.cnblogs.com/sunxiaopei/p/11778135.html