2016-01-13 74 views
0

我需要刪除Object的屬性。鑑於"id",我必須刪除value[id]。我試試這個代碼:如何在沒有「刪除」操作的情況下刪除Object的屬性

delete value[id]; 

但delete運算符刪除只是一個參考,從來沒有一個對象itself.Anyone可以建議我的任何方法將其永久刪除一個對象的財產?

+0

你可以嘗試設置值[id]爲空。這應該刪除你的財產 –

+0

如果'value [id]'不是對象,字符串,'delete'會刪除它。 –

+3

可能重複[是否可以刪除對象本身,而不是引用](http://stackoverflow.com/questions/5097450/is-it-possible-to-delete-the-object-itself-not-the -參考) –

回答

0

JavaScript不允許你做這樣的事情,它是垃圾收集,這意味着你沒有直接控制內存中發生的事情。您只能刪除參考。如果你希望它永遠消失,請確保在其它地方使用它。

0

FROM Mozilla

經過鏈接,它解釋了它正常..

從鏈接要點如下補充..

不像什麼共同的信念表明,delete運算符無關直接釋放內存(它只是間接地通過中斷引用來完成)。有關更多詳細信息,請參閱內存管理頁面。

如果刪除操作符成功,它將完全從對象中刪除屬性。但是,如果在對象的原型鏈上存在具有相同名稱的屬性,則該對象將從原型繼承該屬性。

刪除僅對對象的屬性有效。它對變量或函數名稱沒有影響。 雖然有時候被誤認爲全局變量,但沒有指定對象的賦值(例如x = 5)實際上是全局對象上的屬性賦值。

刪除無法刪除預定義對象的某些屬性(如對象,數組,數學等)。這些在ECMAScript 5及更高版本中被描述爲不可配置的。

相關問題