2010-10-07 55 views
-1

可能重複:
Explain JavaScript's encapsulated anonymous function syntax這是什麼意思在JavaScript?

剛纔我看到一個JavaScript的書,但我已經看到了這樣的代碼:

1(function() { 

      // code 

})(); 

這是什麼?是一個特殊的功能?

+0

那個'1'和那個'};'從哪裏來的?他們看起來不屬於他們。 – BoltClock 2010-10-07 22:28:47

+0

我現在正確:) :) 1可能是函數的名稱,但我不知道。 – xRobot 2010-10-07 22:31:02

+0

一個錯字?圖書編輯並非絕對可靠的:D – lincolnk 2010-10-07 22:34:50

回答

1

正如所寫,它有一個語法錯誤。

我猜它更像是:

(function() { 
      // code 
})(); 

(function() { 
      // code 
    } 
)(); 

打破它:

(FOO)() // calls FOO with no arguments. 

而且

function() { //creates a function that takes no arguments. 
     // code 
} 

因此,它將創建一個不帶參數的函數,然後調用它。我看不出爲什麼你會顯示你可以。

+0

您可以在JavaScript中創建受保護的作用域。在該塊中定義的var不能在外部範圍內訪問。 – gnarf 2010-10-07 22:44:33

+0

@gnarf。是的,就是這樣! – 2010-10-07 22:55:51

1

它看起來像意圖是聲明函數內聯/匿名,並立即執行它。