2

私の関数は一度正しく実行されますが、繰り返し実行したいです:

$('button').click( function(){

    setInterval(magicWords(7,3), 1000); 

});

関数自体にパラメーターを配線して、パラメーターなしで実行しようとしましたが、それでもうまくいきません...?

4

2 に答える 2

8

このようにすることができます。

$('button').click( function(){

    setInterval(function(){
        magicWords(7,3)
     }, 1000); 

});

実行すると、ステートメントを実行するときsetInterval(magicWords(7,3), 1000);に関数が呼び出され、関数の結果 (何も返さない場合はおそらく未定義) が、関数自体ではなく、その間隔で実行されるように設定されます。あなたは使うことができます

もちろん、以前のブラウザーをサポートするために shim を追加する準備ができている場合は、ecmaScript 5 function.bindを使用できます。これにより、呼び出されるたびに、指定されたコンテキストとパラメーターで関数がバインドされます。

setInterval(magicWords.bind(this, 7,3), 1000);
于 2013-06-27T05:22:52.647 に答える
5

クロージャを使用:

setInterval( function(){ magicWords(7,3); }, 1000); 
于 2013-06-27T05:22:44.367 に答える