0
A
回答
2
一個實例是在循環中創建它們。考慮以下jQuery:
for(var i = 0; i < 1000; ++i)
$('#elements').click(function(e) { console.log(e); });
這將在每次迭代中創建一個閉包。這可以通過單獨創建函數來輕鬆優化:
function log(e) { console.log(e); }
for(var i = 0; i < 1000; ++i)
$('#elements').click(log);
然後,您只是傳遞引用而不是重複重新創建閉包。
1
在處理閉包時,可能會遇到的性能問題之一是嵌套層次太多。
提供的函數被多次包裝,在查找內部函數中使用的變量時,引擎不得不花費的時間有時很重要。
如果使用不正確,任何東西都會導致性能問題。 – SLaks 2012-02-20 14:12:20