2012-04-28 48 views
0

這裏使用JavaScript閉包是我的javascript:在縮小

document.getElementById('post').style.color = "black"; 
document.documentElement.className = "active"; 
alert(document.documentElement.clientWidth); 


你會說以下哪個縮小的版本的比較好?爲什麼?它們的長度基本相同,但第二種方法使用匿名函數來重命名某些變量。

會有速度上的差異(但是會有很多納秒)嗎?

正常縮小:

document.getElementById('post').style.color="#000";document.documentElement.className="active";alert(document.documentElement.clientWidth); 

或匿名函數...

(function(){var d=document,h=d.documentElement;d.getElementById('post').style.color="#000";h.className="active";alert(h.clientWidth)})(); 
+0

無論哪一個gzip到最小的字節數? ;-)我不擔心任何性能差異,他們肯定是分鐘。 – Cameron 2012-04-28 04:15:12

+0

檢查gzipped尺寸。別名變量(即您的var d =文檔等)可能會增加gzip尺寸,因爲變量名稱是通過gzip壓縮自動壓縮的。 – 2012-04-29 03:05:21

回答

2

第二個(function(){var d=document,h=d.documentElement;d.getElementById('post').style.color="#000";h.className="active";alert(h.clientWidth)})();是更好,因爲它在它的局部範圍內的全局變量本地複製,速度更快。這在垃圾收集和範圍鏈走動方面具有性能優勢。
Ref(本地化部分)

+0

你確定嗎? ...我的片段中沒有用戶定義的變量。我認爲只有**用戶定義的**全局變量很慢。也許我錯了? – 2012-04-28 04:23:40

+1

閱讀那篇文章。感謝您的鏈接! – 2012-04-28 04:37:02