繁体   English   中英

如何在不执行“删除”操作的情况下删除对象的属性

[英]How delete a property of Object without “delete” operation

我需要删除对象的属性。 给定一个"id" ,我必须删除value[id] 我尝试以下代码:

delete value[id];

但是delete运算符只删除一个引用,而不删除对象本身。任何人都可以建议我任何一种永久删除对象属性的方法吗?

JavaScript不允许您执行此类操作,它是垃圾回收,这意味着您无法直接控制内存中发生的事情。 您只能删除参考。 如果您希望它永远消失,请确保将其删除在其他使用位置。

来自Mozilla

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

链接中的要点添加如下。

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

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

删除仅对对象的属性有效。 它对变量或函数名称没有影响。 尽管有时错误地将其描述为全局变量,但未指定对象的分配(例如x = 5)实际上是全局对象上的属性分配。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM