如何在没有“删除”操作的情况下删除对象的属性

时间:2016-01-13 09:47:12

标签: javascript

我需要删除Object的属性。鉴于"id",我必须删除value[id]。我试试这段代码:

delete value[id];

但是删除操作符只删除一个引用,而不是一个对象本身。任何人都可以建议我任何方法永远删除一个对象属性?

2 个答案:

答案 0 :(得分:0)

JavaScript不允许你做这样的事情,它是垃圾收集,这意味着你无法直接控制内存中发生的事情。您只能删除参考。如果您希望它永远消失,请确保将其删除在其他任何地方。

答案 1 :(得分:0)

FROM Mozilla

通过链接,它正确解释..

链接的要点将在下面添加..

与常见的信念不同,删除操作符与直接释放内存无关(它只通过断开引用间接进行。有关更多详细信息,请参阅内存管理页面。)

如果删除操作符成功,则会从对象中完全删除该属性。但是,如果对象的原型链上存在具有相同名称的属性,则该对象将从原型继承该属性。

delete仅对对象的属性有效。它对变量或函数名称没有影响。 虽然有时误称为全局变量,但未指定对象的赋值(例如x = 5)实际上是全局对象的属性赋值。

delete无法删除预定义对象的某些属性(如对象,数组,数学等)。这些在ECMAScript 5及更高版本中描述为不可配置。