js中 function 的寫法用處

2021-10-05 19:52:05 字數 857 閱讀 8477

以前看到老師寫js的單例模式時疑惑為什麼要這麼寫

var singleton = (function ()

return ,

secondmethod: function (c) };

}());12

3456

78910

1112

13後來查了下資料,js中(function())()立即執行函式寫法理解,終於了解了。

來來來,首先嘛,js中函式有兩種命名方式

1、一種是宣告式。

而宣告式會導致函式提公升,function會被直譯器優先編譯。即我們用宣告式寫函式,可以在任何區域宣告,不會影響我們呼叫。

function ***(){}

2、一種是函式表示式

函式表示式我們經常使用,而函式表示式中的function則不會出現函式提公升。而是js直譯器逐行解釋,到了這一句才會解釋。因此如果呼叫在函式表示式之前,則會呼叫失敗。

var k = function(){}

fn1();

function fn1(){}//可以正常呼叫

fn2();

var fn2 = function(){}//無法呼叫12

345ok,下面進入正題,對函式表示式加上(),是可以直接呼叫的 

但是如果是對宣告式的後部加上()則是會被編譯器忽略。

var fn2 = function(){}();//對,就是這樣

function fn1(){}();//會被忽略12

而平常的function(){}則是一種宣告式,如果加上()括號後,則會被編譯器認為是函式表示式,(加上+-號都可以),從而可以用()來直接呼叫

(function fn1(){})();

js 中的Function型別

函式的建立有兩種方式 二者基本等價,除了 什麼時候可通過變數訪問函式的區別,以下將舉例證明。以函式宣告的方式來建立,那麼不論在什麼時候訪問函式,都是正確的,因為解析器有函式宣告提公升。sayhello function sayhello 以函式表示式方式來建立,那麼只能在建立之後才能訪問。sayhe...

JS中 function 的理解

這種寫法,是一種立即執行函式的寫法,即iife等設計模式。這種函式在函式定義的地方就直接執行了。理解iife設計模式的關鍵是要認識到,在es6之前,j ascript僅具有函式作用域 因此缺少塊作用域 並通過 閉包內部的引用傳遞值。es6之後情況已不再如此,因為j ascript的es6版本使用le...

js中的函式function

python關鍵字 def js 關鍵字 function 格式 function 函式名 形參1,形參2,形參3.呼叫函式 函式名 引數 無參函式 function func1 有參函式 關鍵字arguments 能夠獲取到函式接收到的所有引數 function func3 a,b 利用argum...