js中()()問題

來源:互聯網
上載者:User

標籤:

1 var aa=function(){}();2 3 var bb=(function(){})();

今天被問到這個問題,這段js有撒區別。

總結一下,兩個函數都是立即執行的意思。但是不同之處是執行的順序,aa函數先認識函數,然後認識後面的小括弧。

bb函數是先將匿名函數,執行成為函數,然後在執行。bb函數常用於js包開發。

自執行匿名函數:

  • 常見格式:(function() { /* code */ })();
  • 解釋:包圍函數(function(){})的第一對括弧向指令碼返回未命名的函數,隨後一對空括弧立即執行返回的未命名函數,括弧內為匿名函數的參數。
  • 作用:可以用它建立命名空間,只要把自己所有的代碼都寫在這個特殊的函數封裝內,那麼外部就不能訪問,除非你允許(變數前加上window,這樣該函數或變數就成為全域)。各JavaScript庫的代碼也基本是這種組織形式。

總結一下,執行函數的作用主要為 匿名 和 自動執行,代碼在被解釋時就已經在運行了。

其他寫法

(function () { /* code */ } ()); !function () { /* code */ } ();~function () { /* code */ } ();-function () { /* code */ } ();+function () { /* code */ } ();


轉:http://www.cnblogs.com/TomXu/archive/2011/12/31/2289423.html

js中()()問題

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.