請看下面的例子:JS對象指針
var a = new A();
b = a;
A爲對象 我想刪除B和在同一時間所有的指針,其指向同一個對象! 但我只能訪問b。請給我解決方案,我可以刪除b和a同時只訪問b!
請看下面的例子:JS對象指針
var a = new A();
b = a;
A爲對象 我想刪除B和在同一時間所有的指針,其指向同一個對象! 但我只能訪問b。請給我解決方案,我可以刪除b和a同時只訪問b!
一個解決方案,「刪除」b和a在同一時間只訪問b!
您不能通過一個命令刪除所有現有的引用,您需要手動執行(要求每個引用持有者忽略其值)。
您將需要訪問保存的值的所有變量,在這裏
b = null;
a = null;
// now it can be garbage-collected
如果你沒有指定臨時值的全局變量,你應該甚至不應該關心你所描述的問題,因爲它採取由垃圾收集者照顧。原理非常簡單:只要一個值失去指向它的所有指針,就會被垃圾收集器從內存中刪除。
例如,在下面的示例中的變量a
和b
只存在,只要該功能f
執行:
var f = function() {
var a = new A();
var b = a;
}
THEREFOR由於通過的f
執行結束時的值new A()
失去所有指針它被GC消滅了。
據我所知,你不能[刪除](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/delete)變量。您只能刪除屬性(全局變量是* window *對象的屬性)。 – ComFreek