首页 > 解决方案 > 用 for 循环关闭

问题描述

这是完美运行的代码,(i)大括号后面是什么

for (var i = 0; i < 5; i++) {
  setTimeout(function(j) { 
    console.log(j);
  }(i), 1000);
}

这是在匿名函数中传递参数值的方式吗?

标签: javascript

解决方案


让我们来看看这个案例:

  function fn(j) { // function declaration
    console.log(j);
  }

  fn(j); // function call

这调用了函数。现在,由于函数也可以是表达式,它们可以计算为引用,并且可以通过()在引用之后添加来调用该函数,就像上面一样。这意味着

  function(j){ /*..*/ }(i)

其实不用等待直接调用函数。


推荐阅读