Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/405.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将函数推送到循环中的数组中 var调用=[]; for(var y=1;y_Javascript_Node.js_Array Push - Fatal编程技术网

Javascript将函数推送到循环中的数组中 var调用=[]; for(var y=1;y

Javascript将函数推送到循环中的数组中 var调用=[]; for(var y=1;y,javascript,node.js,array-push,Javascript,Node.js,Array Push,这是因为在for循环中引用了改变的x和y,所以当您执行函数时,您有最后一个值,要解决这个问题,您需要添加闭包: var calls = []; for (var y = 1; y <= 10; y++) { for (var x = 1; x <= 10; x++) { calls.push(function() { yooMe(x, y); }); } } for (

这是因为在for循环中引用了改变的x和y,所以当您执行函数时,您有最后一个值,要解决这个问题,您需要添加闭包:

    var calls = [];

    for (var y = 1; y <= 10; y++) {
      for (var x = 1; x <= 10; x++) {

        calls.push(function() {
          yooMe(x, y);
        });

      }
    }

    for (var i in calls) {
      calls[i]();
    }

    var yooMe = function(x, y) {
      console.log(x + ':' + y);
    }
for(变量y=1;y
var调用=[];

for(var y=1;y)这是
for
循环和其中的
函数调用的基本问题。你的英语技能很好,但你的搜索技能不是很好。谢谢你的快速回答。它对我非常有效。谢谢你。但是它对我的情况不起作用。
for (var y = 1; y <= 10; y++) {
  for (var x = 1; x <= 10; x++) {
    (function(x, y) {
      calls.push(function() {
        yooMe(x, y);
      });
    })(x, y);
  }
}