2015-08-26 30 views
0

從內存角度來看,這兩個語句之間的基本區別是什麼。只是想知道如何使用新的對象來創建對內存分配和垃圾收集有特殊意義的對象,或者兩者都是相同的。 我必須加載一個巨大的二進制數據到一個數組,所以想有一個想法。 另一個問題是我可以強制從JavaScript直接解壓任何內存嗎?像C#中的Gc.Collect()或刪除操作符?新關鍵字和內存管理的JavaScript使用

var x=8; 
var y=new Number(8); 

感謝您的幫助提前

+0

這可能包含您正在查找的信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Memory_Management – scrappedcola

+0

不要使用'new'來創建基元http:// stackoverflow .com/questions/4719320/new-number-vs-number –

回答

1

差異:無。 至於強制釋放:沒有。

(可以設置爲null的所有引用,但可能是不必要的暗示,GC)

JavaScript是全面管理,並且不提供API,如C#以「訂單」的GC做的東西。事實上,你甚至可能會發現一些對象最終綁定到DOM,直到它們的關聯節點才被刪除。每個瀏覽器都有不同的風格。

+0

如果我必須取消分配的東西沒有辦法做到這一點? –

+0

總之,沒有。歡迎使用託管內存。如果分配給您的巨型數據集的變量超出範圍,則JS引擎應釋放內存。如果您不確定它是否超出範圍,請將該變量設置爲空,例如: var data = getSomeHugetData(); /*在這裏做一些處理*/ data = null; 但這通常是不必要的,除非您將此數據分配爲全局範圍內的變量或將其附加到DOM元素。 (請原諒,評論系統不允許乾淨的代碼格式:/) – daf