2009-08-26 42 views
18

函數變量是否有「通常」 的功能VS在JavaScript

function MyFunc() { 
    // code... 
} 

var MyFunc = function() { 
    // code... 
}; 
在JavaScript

之間有什麼區別?

+0

哇,我一直在努力的JavaScript多年,我不知道這...... CRAZY – Zoidberg 2009-08-26 11:06:37

回答

7

本文可能會回答你的問題:JavaScript function declaration ambiguity

只有第一個是一個實際的函數聲明,而速記方法只是一個常規變量聲明,其中一個匿名函數被賦值爲它的值。

(看評論,也可能得到一些有用的信息太)

+2

請注意評論;其中幾個是不正確的。 – 2009-08-26 13:06:39

+3

鏈接可能會解釋所有內容,但在這裏也有一個小小的摘要總是稍微好一些。 – Trilarion 2014-07-11 12:20:53

-1

沒有區別表面上,這樣你就可以在你的代碼中使用這兩種格式。

雖然js解釋器不同。

第一個是命名的功能。

第二個是一個匿名函數,它被賦值給一個變量。

另外,在調試的時候,你不會得到堆棧跟蹤中第二個函數的名字。

9

我知道他們之間的區別在於,無論您聲明它們,命名函數都可以在任何地方工作,變量中的函數不會。

a();//works 
function a(){..} 

工作

a();//error 
var a=function(){..} 

不工作,但如果你在聲明之後叫它它的工作原理

var a=function(){..} 
a();//works