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