我對JavaScript的delete
運算符有點困惑。採取以下的代碼:在JavaScript中刪除對象
var obj = {
helloText: "Hello World!"
};
var foo = obj;
delete obj;
這段代碼已被執行之後,obj
是null
,但仍foo
指物體酷似obj
。我猜這個對象與foo
指向的是同一個對象。
這使我困惑,因爲我預計寫delete obj
刪除obj
指向內存中的對象 - 不僅僅是變量obj
。
這是因爲JavaScript的垃圾收集器正在保留/釋放的基礎上工作,所以如果我沒有任何其他變量指向對象,它會從內存中刪除將?
(順便說一句,我的測試是在Safari 4進行)
供您參考。 https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Operators/Special_Operators/delete_Operator – 2009-04-12 23:37:31
關於delete關鍵字的完整文章http://webcache.googleusercontent.com/search?q=cache:auElwuFsub0J:perfectionkills.com/理解 - 刪除/ +刪除+ JavaScript&cd = 2&hl = en&ct = clnk&client = safari – 2012-12-17 23:08:34
上面的鏈接應該是:http://perfectionkills.com/understanding-delete – johnmdonahue 2013-06-13 19:32:38