删除属性

delete操作符用于从对象中移除属性。它唯一的操作数是一个属性访问表达式。delete不操作属性的值,而是操作属性本身。

delete book.author;    // book对象现在没有author属性了
delete book[“main title”];    //也没有“main title”属性了

delete操作符之删除自有属性,不删除继承属性。若要删除继承属性,必须从定义属性的原型对象上删除,但这样会影响继承该原型所有对象。

delete操作符成功或删除不存在的属性,delete表达式求值都为true。

delete不会删除configurable特性为false的属性。

非严格模式下删除全局对象可配置的属性时,可以省略对全局对象的引用:

globalThis.x =1;
delete x;

严格模式下,若操作数是一个像x这样的非限定标志符,delete会抛出SyntaxError,必须写出完整的属性访问表达式:

delete x;
delete globalThis.x;    //完整写法

你可能感兴趣的:(删除属性)