-1

$(docu...) を内部で定義された変数と関数で使用することの違い/利点は何ですか? 関数で使用してから $(docu...) 内で呼び出すことから

$(document).ready(function (){
    initialize();
});
function initialize(){
    hello
}

これを使用して:

$(document).ready(function (){
        hello
});
4

2 に答える 2

5

これらの 4 つのオプションはすべてまったく同じ結果をもたらしますが、柔軟性は低下します。

例 #1

$(document).ready(function (){
    initialize();
});

function initialize(){
    hello();
}

例 #2

$(document).ready(initialize);

function initialize(){
    hello();
}

例 #3

$(document).ready(function (){
        hello();
});

例 #4

$(document).ready(hello);

最初の例では、document.ready 時に呼び出される無名関数を作成しています。その匿名関数は別の関数を呼び出しますinitialize()。は別の関数であるためinitialize()、他のコードから呼び出すこともできます。

2 番目の例では、無名関数を避けて、initialize関数への参照を直接渡します。これは最初の例よりもわずかに高速に動作します (関数呼び出しが 1 つ少ない) が、ハンドラー以外initialize()から複数の関数を呼び出したい場合は柔軟性が低くなります。document.ready()

3 番目の例では、外側の関数を削除initialize()し、匿名関数から実行していた内部の 1 つのことを呼び出すだけです。

4 番目の例では、無名関数が再び削除され、関数への直接参照を渡すだけhelloなので、介在する関数なしで直接呼び出されます。

最初のオプションは、内部で複数のものを呼び出すことができ、プログラムの他の場所からinitialize()も呼び出すことができるため、最も柔軟性が高くなります。initialize()これらの柔軟性が必要ない場合は、他の 4 つのオプションのいずれかを選択できます。これらのオプションはすべて同じ結果を生成しますが、それぞれ柔軟性が少し低くなります。

于 2012-04-16T22:49:02.263 に答える
4

initialize最初の例では、関数を後で再度使用できます。helloコードを の関数内に直接配置する$(document).ready()と、後でそのコードを再度参照することができなくなります。

于 2012-04-16T22:35:35.790 に答える