高手繞道!這跟閉包本身沒什么大的關(guān)系,也不知道怎么取標(biāo)題,隨便湊了個(gè)數(shù),望見諒!
今天一個(gè)剛學(xué)js的朋友給了我一段代碼問為什么方法不執(zhí)行,代碼如下:
其實(shí)不是不執(zhí)行,只是朋友的意思這里alert出來的應(yīng)該是“0”,而不是function (){return x;}。
不是腳本寫錯(cuò)了,只是沒搞懂return,從當(dāng)前函數(shù)退出,并從那個(gè)函數(shù)返回一個(gè)值。如果返回的是一個(gè)函數(shù),那么返回的也是函數(shù)本身。
可以這樣修改上面的代碼,就是alert(makefunc(0)()):
如果要返回函數(shù)執(zhí)行的結(jié)果那么首先要讓這個(gè)函數(shù)執(zhí)行,例如:
這里有一個(gè)匿名函數(shù),
在第一個(gè)括號(hào)內(nèi)是匿名函數(shù),第二個(gè)括號(hào)用于調(diào)用該匿名函數(shù),您可以在第二個(gè)括號(hào)中傳入所需的參數(shù)。例如:
聲明: 本文采用 BY-NC-SA 協(xié)議進(jìn)行授權(quán) | WEB前端開發(fā)
轉(zhuǎn)載請(qǐng)注明轉(zhuǎn)自《return閉包函數(shù)》