2012-10-10 38 views
0

可能重複:
JavaScript: var functionName = function() {} vs function functionName() {}
What is the difference between these 2 function syntax types命名與匿名功能:完全相同嗎?

在JavaScript中,我們可以定義一個函數,這將在以後的時間被調用,使用下面的方法之一。也就是說,使用一個命名函數並將一個匿名函數分配給一個變量。

function myAdd(a, b) { 
    console.log(a + b); 
} 
myAdd(3, 2); 

var mySubtract = function (a, b) { 
    console.log(a - b); 
} 
mySubtract(3, 2); 

是他們基本上總是相同?相同的,我的意思是沒有特殊的背景可能會使他們不同。例如,根據上下文,結果可能會導致不同的結果multiple left-hand assignment has some subtleties

回答

3

函數聲明被提升(並且可以在範圍中的任何地方使用),函數表達式只能在賦值後纔可用。

+0

函數_hoisting_是否也適用於多個文件?例如,http://stackoverflow.com/q/10511845/583539 – moey

+0

不,不同的腳本是獨立執行的。在那裏看到你的答案 – Bergi