2012-01-20 78 views

回答

0

有兩種方式:

  • 在一個變量
  • 聲明它使用默認的函數聲明

在你的情況,你想聲明它的一個變量。聲明變量(無論是否爲函數)以var語法開始。

var foo = function() { }; // please note that semicolon (;) 

當正常定義的函數:

function foo() { } 

所以,再次,在你的情況下,var是必需的,除非你預先定義它:

var foo; 
foo = function() { }; 

編輯:詹姆斯說,如果你想在全球範圍內定義它,你可以放棄關鍵字var。但說實話,如果您希望在另一個範圍級別上定義變量,則預先定義該變量仍然是一種更好的做法。

+1

'var'不是必需的*但應該使用。 –

+0

@FelixKling我剛剛編輯了我的帖子;) –

1

據我所知,如果你不說出var那麼你的功能將被分配到全球範圍內(同一範圍級別爲window對象),但是如果你把它聲明爲var它將包含其父範圍之內。

編輯:澄清來自Tomalak的響應之後,該函數將屬於它的父範圍,但是如果父範圍是一個被執行的函數,在執行封閉函數之後,任何聲明爲無var的函數都將被訪問在全球範圍內。

+1

這是不正確的。函數將始終包含在其父範圍中。 – Tomalak

+0

@Tomalak你是對的,那是我的錯誤 –

相關問題