簡體   English   中英

JavaScript內存管理(信息)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM