1

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

これらの特殊文字を持っている私の質問は、私は良い答えを見つけることができませんでした。(誰かが彼らと一緒に検索する方法を知っていますか?)

匿名関数をすぐに呼び出す2つのパターンを見てきましたhttp://jsfiddle.net/ukqS8/1/

(function(d) {
    document.write(d*2);
})(3);

(function(x) {
    document.write(x*2);
}(3));

違いは、(3)が配置されている場所です。閉じ括弧の内側または外側です。

私はここで2番目のケースの良い説明を見つけました:

javascript関数vs.(function(){...}());

これは関数オブジェクトを作成するものとして理解しましfunction(x) {...}たが、(3)はその引数になり、囲んでいる()はインタプリタに内部にあるのはステートメントであることを示します。

最初のケースでは(function(d) {...})、どういうわけか関数でもあるというステートメントを作成し、このステートメント/関数に(3)を適用するように見えます。

したがって、どちらも同じように実行されているように見えます。ここに本当に違いはありますか?スコープ(私はそれを疑う)?どちらのオプションが望ましいですか?

4

2 に答える 2

2

あなたの理解は間違っています。

これらは両方とも関数式です。ここでは、括弧の配置に違いはありません。

ただし、微妙な違いがある場合があります

于 2012-05-02T15:42:46.833 に答える
1

それらはまったく同じように実行されます。違いは構文だけです。

于 2012-05-02T15:42:29.793 に答える