js里面写(function(j){})(i)
下面展示一些 相关代码
。
for(var i = 0; i < 5; i++){
(function(x){
setTimeout(function(){
console.log(x++);
},4000);
})(i);
}
console.log(i);
// 输出结果
5
0
1
2
3
4
function(i){‘代码’}(i),
- 这算是一个闭包了,产生了num个闭包并且执行num次代码。
- 第一个括号**(function(j){})(i)**定义了一个匿名函数,后一个括号(i)是指调用了这个函数,并传入参数i。当然这个匿名函数接受一个参数,命名为j。
- 定义了一个有一个形参(第一个i)的空的匿名函数,然后以第二个i为实参进行调用。
- 解析过程可如下