第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

(function(){...}())之間有區(qū)別嗎?和(function(){...})();?

(function(){...}())之間有區(qū)別嗎?和(function(){...})();?

慕森王 2019-09-03 16:11:48
有時(shí)我看到:(function() { ... }()); 有時(shí)我看到:(function() { ... })(); 我看到有和沒有參數(shù)的兩種形式。它們都 執(zhí)行匿名功能。這兩種形式有區(qū)別嗎?是否有任何令人信服的理由使用一種形式而不是另一種形式?
查看完整描述

3 回答

?
幕布斯7119047

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊

這兩種形式?jīng)]有實(shí)際區(qū)別,但從語(yǔ)法的角度來(lái)看,兩者之間的區(qū)別在于分組算子 - 括號(hào) - 將在第一個(gè)例子中保存CallExpression,包括FunctionExpression:


               CallExpression

                | |

       FunctionExpression |

                | |

                VV

    (function(){}());

    ^ ^

    | --PrimaryExpression  -  |


在第二個(gè)例子中,我們首先得到一個(gè)整體CallExpression,它包含F(xiàn)unctionExpression:


          PrimaryExpression

                |

         FunctionExpression

                |

                V

    (function(){})();

    ^ ^

    |  -  CallExpression  -  |


查看完整回答
反對(duì) 回復(fù) 2019-09-03
?
楊魅力

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超6個(gè)贊

就編譯器而言,兩者之間沒有區(qū)別。但是,會(huì)發(fā)現(xiàn)(function () {}())Douglas Crockford的JavaScript 代碼約定中推薦使用該樣式。


查看完整回答
反對(duì) 回復(fù) 2019-09-03
?
Helenr

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超4個(gè)贊

就差異而言,它實(shí)際上只是語(yǔ)法糖。有點(diǎn)相當(dāng)于:“你喜歡jQuery()還是$()?” 兩者都可以互換地編譯,執(zhí)行和使用(AFAIK)。


從我到目前為止看到的代碼示例中,更多人似乎遵循Crockford代碼約定:


(function() { ... }()); 

就個(gè)人而言,我更喜歡這個(gè)(function(){})();慣例,因?yàn)槲矣X得這個(gè)功能是自動(dòng)執(zhí)行的; 我也是jQuery的大用戶,這是jQuery源代碼中使用的約定。


此外,無(wú)論您選擇使用哪種形式,都可以使用parens來(lái)封裝您的自動(dòng)執(zhí)行功能。


查看完整回答
反對(duì) 回復(fù) 2019-09-03
  • 3 回答
  • 0 關(guān)注
  • 403 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)