[英]JavaScript Memory Management (Info)
我試圖解決的是是否總是需要取消操作。 由於我在使用Chrome時遇到了一些問題。 說我有這段代碼。
function MyClass() {}
MyClass.prototype.MyFunction = function() {
this.data = "foo";
}
var c = new MyClass();
c.MyFunction();
現在,一旦調用了該函數,就應該允許它為GC,但是該函數的末尾應該具有this.data = null
。 這也應該是標准的。
您的代碼將無法正常工作。 您應該首先創建您的類的實例:
var c = new MyClass();
c.MyFunction();
因為MyFunction
是實例函數。
否則,還有delete
操作符( 參考和深入分析 ),用於刪除對象成員(但不刪除對象本身)。 因此,當無法再引用對象時,就可以對其進行垃圾回收。
c = undefined;
應該說服Javascript垃圾收集此對象實例並釋放它占用的內存資源。
如果用這種方式實例化對象實例,則有所不同:
c = new MyClass();
c.MyFunction();
delete c; // success
因為c
這次是global( window
)的成員,因此可以從中刪除。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.