web-dev-qa-db-ja.com

(function(){})();の違いおよびfunction(){}();

重複の可能性:
JavaScriptでは「(function(){})()」と「(function(){}())」は機能的に同じですか?

これは私がまだ完全に理解していないことですが、括弧を追加するとVIM構文の強調表示が台無しになるという理由だけでfunction(){}()を使用していますが(function(){})()を何度も見たことがありますが、おそらくそのIEのことですか?

編集:

var singleton = function() {
    // code
}();

var singleton = (function() {
    // code
})();
37
Luca Matteis

Peter Michauxが Parensの重要なペア の違いについて説明します。

基本的に、括弧は、単純な関数ではなく、すぐに呼び出される関数式が続くことを示す規則です。特に機能本体が長い場合、これは驚きを減らします、

45
Walter Rumsby

括弧の追加セットにより、関数を作成してから呼び出すことが明確になります。これはコーディングスタイルのものであり、機能的なものではありません。

9
Henk
function(){}();

ほとんどのブラウザでは機能しません。関数を実行するには、関数を括弧で囲む必要があります

(function(){})();

そうすれば、ブラウザは最後の括弧をすべての式に適用する必要があることを認識します

function(){}

[〜#〜] upd [〜#〜]:括弧を使用しないと、ブラウザが誤解する可能性があります。関数を呼び出して結果を閉じるだけの場合

function() {
    alert(1);
}();

次にffとieはエラーをスローします

4
x-yuri