for (var i = 0; i < 5; i++) { (function (idx) { setTimeout(function () { console.log(idx); }, 5); })(i); }
for中间展开写
var f=function (idx) { setTimeout(function () { console.log(idx); }, 5); } f(i)
懒人直接一个闭包,省掉了var f这个变量
括号是执行,i是传参
对这种写法接触不多,您能给分析一下执行过程吗
@nostic: 就是个闭包的写法。
没见过,是c++的吗?
js这边吧