2012-06-18 43 views
0

可能重複一些信息:
JavaScript scope and closure
JavaScript - self executing functions需要在聲明變量在下面的樣式

是什麼下面的代碼之間的區別:

 

var someVar = (function(){ 
    // some code 
})(); 
 

 

var someVar = function(){ 
    // some code 
}; 
 

你能指點一下關於第一代碼的用法和解釋的教程嗎?

在Google上很難找到答案,所以我想我會在這裏問這個問題。

謝謝。

+1

第一個是自我調用。 – j08691

+0

測試自己:http://jsfiddle.net/sdsmV/。第二種方法定義了函數,第一種方法是激發函數並將返回值放在'someVar'中。 – user1365010

+0

謝謝@Michael,我編輯了我的評論。 – user1365010

回答

1

第一種情況

將被創建並執行匿名函數。函數結果將存儲在someVar中。

var someVar = (function(){ 
    console.log('function executed'); 
    return 1; 
})(); 
// function executed 
console.log(someVar); 
// 1 

第二種情況

將創建匿名函數,它的引用將被存儲在someVar

var someVar = function(){ 
    console.log('function executed'); 
    return 1; 
}; 

var result = someVar(); 
// function executed 
console.log(result); 
// 1