2
簡短問題:JavaScript中的變量範圍
假設我們包含了jQuery。將這個函數執行得更快......
var example1 = (function($, jQuery) {
return function() {
// do something
}
})()
...比下面的例子:
var example2 = (function() {
return function() {
// do something
}
})()
?
在第一個jQuery對象將是undefined
,在第二個它將被繼承。所以第二個應該更貴?
提高速度和擺脫繼承變量會降低性能的最佳方法是什麼?
jsPerf測試:http://jsperf.com/objinheritance
這可能會回答你的問題:http://stackoverflow.com/questions/9248963/javascript-why-the-access-to-closure-variable-might-be-slow – 2012-04-23 08:37:22
在第二個它不會被繼承,會嗎?它只是全球性的。就像第一個一樣。如果你在本地訪問它,它只是未定義的,你仍然有window。$和window.jQuery。 – 2012-04-23 08:45:20
Quote:「過早優化是萬惡的根源」。繼續學習JS中的範圍,非常好 - 但不要爲了優化而優化。這個特定問題只有在一段代碼執行數千次(一次)時纔有意義。谷歌關鍵字:「scope-chain」。電腦(CPU)的時間比開發者時間便宜很多! – 2012-04-23 08:49:54