以下のsetIntervalメソッドの違いは誰か教えてください。パラメータとしてsetIntervalに関数を渡す最良の方法は何ですか?setIntervalパラメータの相違点
function red_on(){
$('#red_light').css('opacity', 1);
}
setInterval(function() {
red_on();
}, 4000);
setInterval(red_on, 4000);
以下のsetIntervalメソッドの違いは誰か教えてください。パラメータとしてsetIntervalに関数を渡す最良の方法は何ですか?setIntervalパラメータの相違点
function red_on(){
$('#red_light').css('opacity', 1);
}
setInterval(function() {
red_on();
}, 4000);
setInterval(red_on, 4000);
最後の方法が最適です。
基本的に、最初のメソッドでは、匿名関数の中でfunction(red_on())を実行しています。あなたには2つの機能があります。
最初のパラメータとしてsetIntervalが機能しているので、匿名関数を作成せずに実行したい関数を渡すことができます。
red_on()
と他のもの(console.logなど)を実行する場合は、最初の方法が優れています。
TL; DR大きな違いはありません。
この場合、2番目の方法が正しい方法です。私はそれを人として表現します。 2番目の方法でRed_onという名前の人と話したい場合は、Red_onに直接話しかけています。最初のアプローチではまだRed_onと話していますが、無名関数や他の人と話をすることになります。だからRedはまだあなたのメッセージを取得していますが、あなたは無名の機能で別のステップを追加するだけです。
違いはありません。
匿名関数を作成せずに参照のみを使用するため、パフォーマンスの徹底的な第2のアプローチが優れています。最初のケースでは、同じ結果を得るために関数を2回作成します。
いくつかのパラメータを関数に渡す必要がある場合は、最初の方法を使用できます。そうでなければ、よりシンプルで読みやすい方法になります。
例:私はそれはあなたの役に立てば幸い
function test(par1){
console.log(par1);
}
setInterval(function() {
test("message every 4 seconds");
}, 4000);
setInterval(test("message2: called just one time!"), 4000);
:
function red_on(opacity){
$('#red_light').css('opacity', opacity);
}
setInterval(function() {
red_on(1);
}, 4000);
setInterval(red_on, 4000); <-- Here you cannot pass parameters
次のスニペットを参照してください。さようなら。