亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

function oClick4(){

? ? var ajQuery4 = function(){

? ? ? ? show('ajQuery4')?

? ? }();

}


這個我變成:

function oClick4(){

? ? function(){

? ? ? ? show('ajQuery4')?

? ? }();

}

之后,點擊“點擊測試4”,就沒有字符串“ajQuery4”輸出了。。這是為什么呢??

正在回答

5 回答

function () {

? ? /* code */ ?

}

這是函數申明, 后面直接加()是語法錯誤的


var o = function () {


}();

在"="后function, 這樣是表達式, 才可以執行


加括號是把函數聲明放到一個塊中

(function () {

? ? alert("ok");

})();

0 回復 有任何疑惑可以回復我~

這個自執行我感覺會用,但還是不太理解,看了一下講義上的說法:

????“jQuery使用()將匿名函數括起來,然后后面再加一對小括號(包含參數列表),那么這小括號能把我們的表達式組合分塊,并且每一塊(也就是每一對小括號),都有一個返回值。這個返回值實際上也就是小括號中表達式的返回值。所以,當我們用一對小括號把匿名函數括起來的時候,實際上小括號返回的,就是一個匿名函數的Function對象。因此,小括號對加上匿名函數就如同有名字的函數般被我們取得它的引用位置了。所以如果在這個引用變量后面再加上參數列表,就會實現普通函數的調用形式?!?


還是不太懂!


看到上面小鳥說的“在function前加上一個+ ?讓其成為表達式 ?就可以執行了”我感覺就是上面講的那個意思。但是我沒搞明白,因為我第一次看到匿名函數的時候有這么個想法:


如果"()"可以當做變量名的話,是不是可以這么理解呢??

var () = function(){alert("ok")}; ()();

這樣就跟自執行是一樣的了;


感覺應該是不對的,誰能幫我解釋一下這個表達式怎么就可以執行了呢?!??!

0 回復 有任何疑惑可以回復我~

function(){}();這樣是不行的,因為找不到這個匿名函數,假如有很多個匿名的函數的話,瀏覽器上哪知道你要執行的是哪一個呢,所以要給它命名才能找到它,例如:var fun1 = function(){alert("ok")}();這樣就是對的.再一個就是自執行函數:(function(){alert("ok")})();?

0 回復 有任何疑惑可以回復我~

函數不能這樣執行 ? 你可以加括號或者在function前加上一個+ ?讓其成為表達式 ?就可以執行了

0 回復 有任何疑惑可以回復我~

語法錯誤,匿名函數立執行 ()() ,函數需要括號。

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號