Javascript 循环中的变量函数定义?
在循环中定义函数会影响性能吗 像 vsJavascript 循环中的变量函数定义?,javascript,jquery,function,Javascript,Jquery,Function,在循环中定义函数会影响性能吗 像 vs 在第二个版本中,函数被定义为32453245次,这取决于被迭代的元素的数量,对吗?好吧,元素的范围和doSomething正好在当前循环迭代中,因此,如果所有操作都正确实现,即垃圾收集器得到优化,它应该处理得很好。当然,您最好使用第一个版本。我强烈建议您使用它来测试这样的问题 我们所能给你的只是我们根据个人经验做出的最有根据的猜测,这些猜测会有很大差异 编辑:在回答这个问题时,doSomething在做什么也非常重要 我自己也曾对自己的测试感到惊讶 希望这
在第二个版本中,函数被定义为32453245次,这取决于被迭代的元素的数量,对吗?好吧,
元素的范围和doSomething
正好在当前循环迭代中,因此,如果所有操作都正确实现,即垃圾收集器得到优化,它应该处理得很好。当然,您最好使用第一个版本。我强烈建议您使用它来测试这样的问题
我们所能给你的只是我们根据个人经验做出的最有根据的猜测,这些猜测会有很大差异
编辑:在回答这个问题时,doSomething在做什么也非常重要
我自己也曾对自己的测试感到惊讶
希望这能有所帮助。从技术上讲,在两个版本中定义函数的次数都是80亿次左右。对于大量的迭代,您应该通过像这样定义它来获得一些性能优势
正确的。我会使用第一个版本。
var doSomething = function(element){
$(element).whatever();
};
return this.each(function(){
doSomething(this);
})
return this.each(function(){
var element = this,
doSomething = function(){
element.whatever();
};
doSomething();
...
})
var doSomething = function(index, element){
$(element).whatever();
};
return this.each(doSomething);