delete运算符删除对象的属性。 该操作数必须是属性访问表达式。
var book={
' author':'wsdsb ',
' main title':'This a boy '
(;
delete book.author; //book中不再有属性author
delete book['main title'] //book中不再有属性main title
delete运算符只能删除对象的自己的属性,不能删除从原型继承的属性。 要删除继承属性,必须将其从该对象的原型中删除。
出乎意料的是,delete只会中断属性与主机对象之间的联系,而不会处理属性的属性。
var obj={x:{x1:0}};
var obj2=obj.x;
delete obj.x;
控制台. log (obj2. x1; 返回//0
运行此代码后,obj2.x1的值仍然为0; 由于删除的属性引用仍然存在,因此在某些JavaScript实现中,这些不严格的代码可能会导致内存泄漏。 因此,在废弃对象时,遍历属性中的属性并依次删除。
delete不能删除不可配置的属性。 使用var创建的属性是不可配置的属性,例如
var str='JavaScript ';
delete this.str; //报告错误或返回false
this.str2='HTML5';
delete this.str2; str2是可配置的属性,可以使用delete删除