delete obj.x
var obj = {x:1}
Object.defineProperty(obj,‘x’,{
configurable:false//设置不可删除属性
});
delete obj.x; //false
obj.x; //1
在js中类中(Object)中的属性有4个描述起行为的特性:
Configurable:表示能否通过delete删除属性从而重新定义属性;
Enumerable:表示能否通过for-in循环返回属性
writable:表示能否修改属性的值
Value:包含这个属性的数据值(个人认为其作用就是赋值)
以上四个属性在不显示调用Object.defineProperty()的时候,前三个默认值都为true,而value为你自己设定的值,如果不设定的话则为undefined。
判断对象是不是有key要用in
用obj.hasOwnProperty()判断是不是对象上的
用obj.proto.hasOwnProperty()判断是不是原型链上的
void(0)//undefined
void(“0”)//undefined