從C++/Java轉(zhuǎn)過來學(xué)JS有點(diǎn)不習(xí)慣,JS閉包這個表達(dá)式()()連續(xù)兩個括號?為什么把還可以把function括起來然后又加一個()啊。比如這個,把這個迭代器function括起來,加參數(shù)(i),外面的括號(0)就表示調(diào)用0了,把0傳進(jìn)去i。還有這個,var a = 6;(function() {var a = 5;})();a = 6//true。這個閉包創(chuàng)造新的作用域,閉包一定是()()這種表達(dá)式嗎?為什么是這個規(guī)范。抱歉,初學(xué)JS,很不習(xí)慣。
1 回答

四季花海
TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超5個贊
在函數(shù)后面加個圓括弧就是調(diào)用函數(shù)嘛,聲明函數(shù)的時候就在后面加圓括弧就是立即調(diào)用函數(shù)表達(dá)式嘛,每一個函數(shù)都可以生成一個新的作用域!當(dāng)一個函數(shù)已經(jīng)執(zhí)行完畢之后還保留著一些變量的訪問那才是閉包!
添加回答
舉報
0/150
提交
取消