0

重複の可能性:
JavaScriptイベントコードのコールバックとパラメーターに名前付き関数の代わりに無名関数を使用する利点は何ですか?

私はいくつかの基本的なJavascriptとJQueryコードを読み書きしてきましたが、私が読んだほとんどすべてのチュートリアルで、名前付き関数の代わりに無名関数が使用されていることに気付きました。

たとえば、次のようになります。

$('document').ready(function(){
    alert("I am ready.");
});

対:

function ready(){
    alert("I am ready.");
}

$('document').ready(ready());

2番目の例は、読みやすく、理解しやすいものではありませんか?さて、これらは非常に単純な例であることに気付きましたが、私が得ようとしているポイントは、無名関数によってコードが雑然としていて理解しにくいと感じていることです。中かっこはいたるところにあり、匿名であるため、他の場所ではその機能を使用できません。

関数の要点は、コードを個別のモジュールに編成して、コードの見栄えを良くし、デバッグを容易にし、冗長なコードを回避できるようにすることではありませんか?

名前付き関数よりも無名関数を使用するのはなぜですか?彼らはどのような目的を果たしていますか?

4

2 に答える 2

7

匿名関数のポイントは、(再利用のために)別の場所で定義するのではなく、一度だけ使用することです。それらが(特定のコンテキストで)使用される場所に正しいので、それはきちんとしています。

それらを使用するのはあなたの選択です。あなたがそれらを好きではない場合..しないでください!

于 2012-10-27T19:59:05.373 に答える
2

名前が必要ない/必要ない場合は、変数環境を未使用の名前で乱雑にする意味がないためです。


そして参考までに、これは:

$('document').ready(ready());

これである必要があります:

$('document').ready(ready);

...関数を返すように関数を変更した場合を除きます。

function ready() {
    return function() {
        alert("I am ready.");
    }
}

しかし、ここでわかるように、私は再び匿名関数を使用しました。これは、戻り値を除いて、可変環境で他に使用できないためです。

于 2012-10-27T19:57:58.383 に答える