Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 循环中的变量函数定义?_Javascript_Jquery_Function - Fatal编程技术网

Javascript 循环中的变量函数定义?

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

在循环中定义函数会影响性能吗

vs


在第二个版本中,函数被定义为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);