2013-07-25 60 views

回答

3

你正在聲明一個函數,然後你就調用它。你可以做2個步驟:

function f(args){} 

f(foo); 

單步和匿名:

(function(args){})(foo); 
+2

(function(){})(); – jgroenen

+0

@jgroenen yep :) thx,我們也可以在jquery和模塊中看到這個符號 – TecHunter

+1

順便說一句:我認爲相當於var f = function(args){}; f(foo);,因爲匿名函數是在運行時動態聲明的。 – jgroenen

1

這是immediately invoced function expression(IIFE)的示例。 在聲明瞭匿名函數之後,通過使用參數foo調用它,立即進行調用。

foo可能只是任何對象的示例,您可能會將其作爲參數傳遞給即將被調用的函數聲明。

0

功能是匿名的(沒有名字),你調用函數與參數FOO

0

你的語句可以改寫爲:

function xy(args) { 
    //code here 
} 

xy(foo); 

所以基本上你只需要直接調用函數定義並傳遞變量foo作爲參數。

2

當您看到一個function (args) { }後跟括號(foo)時,它是一個immediately invoked function expression(IIFE - 發音爲'iffy')。

function (args) { } (foo); 

是基本相同

var foofun = function (args) { }; 
foofun(foo); 

function foofun(args) { } 
foofun(foo); 

表達的是也只是匿名的,因爲功能不被存儲在一個變種,並沒有名字。
因此foo只是args參數的參數。

相關問題