簡體   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