"(function(){})()"的分步解析

一、"(function(){})()"的功能
        功能描述:定義一個函數對象並執行。

        返回值:該代碼段返回定義的函數對象的執行結果。

        這個寫法到底是什麼意思呢?

        首先我們把代碼分爲2個部分:"(function(){})" 和 "()"

        "(function(){})"的功能:定義一個函數對象。

        "()":執行函數並返回結果。

        下面我們來逐步分析這種寫法。
二、"(function(){})()"的分步解析
        首先嚐試理解以下2種描述:

        1、定義一個函數a,返回固定值1;

        對應的javascript代碼片段:

        function a()
        {
                return 1;
        }

        2、定義一個對象a,該對象爲函數對象,函數功能返回固定值1;

        對應的javascript代碼片段:

        var a = new Object();
        a =        function()
        {
                return 1;
        }

        簡化寫法:

        var a = function()
        {
                return 1;
        }

        進一步簡化

        var a = function(){return 1}

        3、有上可以瞭解到

        javascript代碼片段

        var a = function(){return 1}

        實現的是定義一個變量a,a爲一個對象,確切說是一個函數對象,返回固定值1;
        一個簡單的問題如何調用a?

        當然是:a()
        那如果"a = function(){return 1}",a的調用又怎麼寫?
        "function(){return 1}" + "()"

        即:
        (function(){return 1})()
        備註:

                什麼函數定義部分加個"()"?

                其實這個"()"沒有特殊含義,只是把函數對象作爲一個整體。
                如果不加"()"那麼 就是"function(){return 1}()"這明顯是一個語法錯誤。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章