在《javsscript高级程序设计》p181看到如下代码,看不懂。
function createFunctions(){
var result = new Array();
for (var i=0; i<10; i++){
result[i] = function(num){
return function(){
return num;
}
}(i);
}
return result;
}
请问大家,第九行的(i)是什么意思呢?感觉像是一个立即执行函数,但是立即执行函数不应该外面再套上一个小括号吗?看不懂这个结构。function () {} (i)。请各位大佬指点。
我查找到了这篇文章。http://weizhifeng.net/immedia... 里面明确指出了上面那种结构不是立即执行函数,那我就更加搞不懂了,是书里弄错了吗?
是立即执行函数。
匿名函数声明不能这么写
function (){}(i)
匿名函数表达式是可以的
var fn = function(num){return num;}(i)