2017-02-27 7 views

答えて

0

、他の2つの答えが正しいですが、念のためにあなたの質問は、無名関数ではなく、この

function onTimeout(){ 
    console.log('foo'); 
    }; 

    setTimeout(onTimeout, 1000); // First form 

    setTimeout(onTimeout(), 1000); // Second Form 

のようなものではないでし差が第1の形式で、機能OnTimeoutパスが後に呼び出されていることです典型的には望ましい結果である1秒。

2番目の形式では、Timoutが直ちに呼び出され、返された関数がすべて1秒後に呼び出されます。この場合、undefinedが返されるため、undefinedが呼び出されます。したがって、関数はすぐに実行され、1秒後に何も起こりません。

0

を私に説明することができます

function onTimeout() { 

} 

setTimeout(onTimeout, 3000); 

...またはあなたがsetTimeout呼んとして、あなたは、パラメータとして匿名関数を与える:setTimeoutの最初のパラメータとして渡す

タイムアウトで定義された関数を呼び出す

:3210の

setTimeout(function() { 
    // Do stuff 
}, 3000); 
0

次の例では、違いを説明します。

setTimeout(my_function, 1000); 

function my_function() { 
    alert("Time is up!"); 
} 

タイムアウト時に匿名関数を呼び出す。

最初の例では既に定義されている関数を呼び出し、もう一方の関数は匿名関数としてコードを手続き的に実行します。私は必要に応じて両方を使います。