2 回答

TA貢獻(xiàn)1817條經(jīng)驗 獲得超6個贊
因為這是聲明函數(shù)
( function(){…} )()和( function (){…} () )是兩種javascript立即執(zhí)行函數(shù)的常見寫法。
函數(shù)聲明、函數(shù)表達(dá)式、函數(shù)
函數(shù)聲明:function fnName () {…};使用function關(guān)鍵字聲明一個函數(shù),再指定一個函數(shù)名,叫函數(shù)聲明。
函數(shù)表達(dá)式 var fnName = function () {…};使用function關(guān)鍵字聲明一個函數(shù),但未給函數(shù)命名,最后將函數(shù)賦予一個變量,叫函數(shù)表達(dá)式,這是最常見的函數(shù)表達(dá)式語法形式。
函數(shù):function () {}; 使用function關(guān)鍵字聲明一個函數(shù),但未給函數(shù)命名,所以叫函數(shù),函數(shù)屬于函數(shù)表達(dá)式,函數(shù)有很多作用,賦予一個變量則創(chuàng)建函數(shù),賦予一個事件則成為事件處理程序或創(chuàng)建閉包等等。
函數(shù)聲明和函數(shù)表達(dá)式不同之處在于,
一、Javascript引擎在解析javascript代碼時會‘函數(shù)聲明提升’(Function declaration Hoisting)當(dāng)前執(zhí)行環(huán)境(作用域)上的函數(shù)聲明,而函數(shù)表達(dá)式必須等到Javascirtp引擎執(zhí)行到它所在行時,才會從上而下一行一行地解析函數(shù)表達(dá)式,
二、函數(shù)表達(dá)式后面括號立即調(diào)用該函數(shù),函數(shù)聲明不可以,只能以fnName()形式調(diào)用 。
添加回答
舉報