鍍金池/ 問答/HTML5  HTML/ (()=>{})(()=>{})這種是什么操作? jquery源碼。

(()=>{})(()=>{})這種是什么操作? jquery源碼。請教下各位大佬。

clipboard.png

回答
編輯回答
賤人曾

你可以這樣理解
兩個函數(shù)

function f1(f){}
function f2(){}

調(diào)用第一個函數(shù),把第二個函數(shù)作為參數(shù)傳遞進(jìn)去

f1(f2)
2017年1月21日 15:42
編輯回答
心沉

普通函數(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í)將函數(shù)fun換成一個匿名函數(shù)

(function (a, b){
  console.log(a)
  console.log(b)
})(1, 2)

發(fā)現(xiàn)沒,與你截圖的樣子差不多了,只不過參數(shù)不一樣,但實(shí)質(zhì)是一樣的:

  • a=你圖片中的typeof window !=="undefined"?window:this的值
  • b=你圖片中的function(window,noGlobal){ // ... }的值

總結(jié)下來就是定義個了一個函數(shù),然后調(diào)用了這個函數(shù),并傳入了參數(shù)。只不過將這幾個步驟的代碼寫在一塊了。

可以去網(wǎng)上搜索js自執(zhí)行函數(shù)進(jìn)行學(xué)習(xí),很多文章講的都很好,里面涉及到閉包、作用域等知識。學(xué)習(xí)完你就會知道為什么要將一個好端端的函數(shù)調(diào)用寫成這個德行了

2018年5月4日 15:52