2 回答

TA貢獻1795條經(jīng)驗 獲得超7個贊
你可以這樣理解
兩個函數(shù)
function f1(f){}
function f2(){}
調(diào)用第一個函數(shù),把第二個函數(shù)作為參數(shù)傳遞進去
f1(f2)

TA貢獻1851條經(jīng)驗 獲得超4個贊
普通函數(shù)的定義與執(zhí)行
// 定義函數(shù)fun,接收兩個參數(shù)a,b
function fun(a, b){
console.log(a)
console.log(b)
}
// 執(zhí)行函數(shù)fun
fun(1,2)
// 輸出:
// 1
// 2
此時將函數(shù)fun換成一個匿名函數(shù)
(function (a, b){
console.log(a)
console.log(b)
})(1, 2)
發(fā)現(xiàn)沒,與你截圖的樣子差不多了,只不過參數(shù)不一樣,但實質(zhì)是一樣的:
a=你圖片中的typeof window !=="undefined"?window:this的值
b=你圖片中的function(window,noGlobal){ // ... }的值
總結下來就是定義個了一個函數(shù),然后調(diào)用了這個函數(shù),并傳入了參數(shù)。只不過將這幾個步驟的代碼寫在一塊了。
可以去網(wǎng)上搜索js自執(zhí)行函數(shù)進行學習,很多文章講的都很好,里面涉及到閉包、作用域等知識。學習完你就會知道為什么要將一個好端端的函數(shù)調(diào)用寫成這個德行了
添加回答
舉報