2013-08-27 12 views
5

対関数がどのように匿名javascript関数の呼び出し!機能

function(){ alert("test123");}() 

SyntaxError: Unexpected token (

しばらく
!function(){ alert("test123");}() 

アラート "test123"

を生成してきますか?

+4

http://benalman.com/news/2010/11/immediately-invoked-function-expression/ – zerkms

+0

@zerkms実際に問題の中心を非常にうまく説明しているので、答えとして投稿するのがよいでしょう。 – Kippie

+1

私は、重複していることがあります... –

答えて

3

!記号を追加すると、宣言を式に変換してすぐに呼び出すことができます。

if (false || !function(){ return false; }()) 


そして@zerkmsとして:それは明確にあなたのようなものとして最初の式について考えることができるようにするには

(function(){ alert("test123");})() 

: 括弧の中にあなたの機能を囲むことによって、あなたはエラーなしで働い最初の例を行いますImmediately-invoking functionsの完全な説明があることに気付きました。

+0

私は適切な答えを書くことができませんが... "識別子"は正しい用語ではありません。むしろその区別は定義と表現の間の区別である。前者はすぐに呼び出すことはできません。 –

+1

正しいトラックだが間違った説明。 !宣言を式に変換します。 – slebetman

+0

私は関数を定義し、それを呼び出すことはできません: '!function(){alert(" not called ")}' –

関連する問題