2016-07-07 23 views
0

コードの部分があります:自己呼び出すJavaScriptの(カッコ)

(function aaa(){alert("555")})() 

と、この:

(function aaa(){alert("555")}()) 

違いは何ですか?あなたが二回一緒に最初のものを入れた場合

+0

スタイル:それはいつものように連結されたとき、それが実行されることを保証するために、セミコロンでスコープを開始するのが最善です。それらは機能的に同一です。 –

+0

彼らはどちらも同じように機能しますが、私は理由を覚えていませんが、Douglas Crockfordは2番目をお勧めします。私には一秒をつけてください。私は彼の推薦で記事を見つけることができるかどうかを見ていきます... – War10ck

+0

IIFEの詳細については、この回答を参照してください。http://stackoverflow.com/a/8228308/3561995 – SteamDev

答えて

0

、それだけでTypeErrorを生成する前に、最初のものを実行します:あなたは二回一緒秒1を入れた場合

(function aaa(){alert("555")})()(function aaa(){alert("555")})()

、それはの両方を実行しますTypeErrorを生成する前に、それら:

(function aaa(){alert("555")}())(function aaa(){alert("555")}())

つまり、グローバル名前空間が乱雑にならないようにコードをスコープするための2つの異なるスタイル選択肢ですが、複数のスコープを連結したときにエラーが発生しにくいため、

;(function aaa(){alert("555")}());(function aaa(){alert("555")}())

+0

修正:構文エラーではなくタイプエラーです。あなたは関数ではないものを関数として呼び出そうとしているので型エラーです。 –

+1

あなたはそうです。私は構文エラーを言った、私は頭の中で論理エラーを考えていた。修正していただきありがとうございます。 –

関連する問題