在Javascript中,删除运算符可用于删除对象中的属性:



复制代码代码如下所示:

var:42,b:26 };

console.log(T); / /对象{ A = 42,B = 26 }

删除一个;

console.log(T); / /对象{ B = 26 }





此属性删除操作的限制是,删除运算符可以删除对象本身的所有属性,并且不能删除从原型对象继承的属性。如果要删除原型对象中的属性,必须显式地获取原型对象并在原型对象中操作:



复制代码代码如下所示:

var:x:1,y:2 };

创建一个object.create(O);

a=z=3;

console.log(一); / /对象{ z = 3,x = 1,y = 2 }

删除内; / /不能删除继承的财产

console.log(一); / /对象{ z = 3,x = 1,y = 2 }

删除一个字符;可以删除自己的属性

console.log(一); / /对象{ x = 1,y = 2 }

删除a.__proto__ X;

console.log(一); / /对象{ y = 2 }





如果删除原型对象中的属性,则从原型对象继承的所有对象都将受到影响。



对于删除操作的返回值,Javascript中遵循以下规则:



1。如果删除操作成功,则返回true。

2。如果删除操作无效(例如,要删除的属性不存在),则返回true。

3、如果你想删除的性能及可配置的属性为false,那么TypeError错误将严格模式的报道,而假将在非严格模式返回。

如果删除操作符充当全局对象的属性,则可以在非严格模式中省略代码中的全局对象:



复制代码代码如下所示:

这个,C=42;

删除c;等于删除此C;





需要注意的是,在严格的模式非常重要,上面写的方法抛出一个SyntaxError错误。