鍍金池/ 問答/HTML/ 請問這是一個立即執(zhí)行函數(shù)嗎?

請問這是一個立即執(zhí)行函數(shù)嗎?

在《javsscript高級程序設(shè)計》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)是什么意思呢?感覺像是一個立即執(zhí)行函數(shù),但是立即執(zhí)行函數(shù)不應(yīng)該外面再套上一個小括號嗎?看不懂這個結(jié)構(gòu)。function () {} (i)。請各位大佬指點。

我查找到了這篇文章。http://weizhifeng.net/immedia... 里面明確指出了上面那種結(jié)構(gòu)不是立即執(zhí)行函數(shù),那我就更加搞不懂了,是書里弄錯了嗎?

回答
編輯回答
溫衫

是立即執(zhí)行函數(shù)。
匿名函數(shù)聲明不能這么寫function (){}(i)
匿名函數(shù)表達式是可以的var fn = function(num){return num;}(i)

2017年11月12日 04:27
編輯回答
檸檬藍

這是函數(shù)閉包

2018年8月29日 02:24
編輯回答
萌吟

這里面的是一個自執(zhí)行函數(shù),給你推薦一個連接,感覺他的描述還是比較準確的、全面的https://www.cnblogs.com/TomXu...

2018年2月17日 11:41
編輯回答
荒城
result[i] = function(num){
            return function(){
                return num;
            }
        }(i);

提取出來這塊代碼,很明顯的立即函數(shù)自執(zhí)行

2017年12月9日 22:53