2 回答

TA貢獻(xiàn)2003條經(jīng)驗(yàn) 獲得超2個(gè)贊
這種函數(shù)叫做立即執(zhí)行的匿名函數(shù),舉了例子你就明白了:
var a=1;
(function(){
a+=1;
})();
alert(a);//2 函數(shù)沒有像我們平常使用的那樣調(diào)用就直接執(zhí)行了
再來看你的函數(shù) (function(menu) {})(jquery)
拆開分析:
function(menu) {}這是一個(gè)匿名函數(shù),參數(shù)menu是形參
(function(menu) {})執(zhí)行強(qiáng)制表達(dá)式運(yùn)算
(jquery)作為函數(shù)或?qū)ο蠓椒ǖ恼{(diào)用運(yùn)算符 jquery是實(shí)參

TA貢獻(xiàn)1891條經(jīng)驗(yàn) 獲得超3個(gè)贊
(1). 首先, 要清楚兩者的區(qū)別:
(function {// code})是表達(dá)式, function {// code}是函數(shù)聲明.
(2). 其次, js"預(yù)編譯"的特點(diǎn):
js在"預(yù)編譯"階段, 會解釋函數(shù)聲明, 但卻會忽略表式.
(3). 當(dāng)js執(zhí)行到function() {//code}();時(shí), 由于function() {//code}在"預(yù)編譯"階段已經(jīng)被解釋過, js會跳過function(){//code}, 試圖去執(zhí)行();, 故會報(bào)錯(cuò);
當(dāng)js執(zhí)行到(function {// code})();時(shí), 由于(function {// code})是表達(dá)式, js會去對它求解得到返回值, 由于返回值是一 個(gè)函數(shù), 故而遇到();時(shí), 便會被執(zhí)行.
- 2 回答
- 0 關(guān)注
- 520 瀏覽
添加回答
舉報(bào)