console.logを関数と見なした場合、この2つの間の違いは何ですか?適切にすぐに1秒が、最初の呼び出しの後、この二番目のコールを尋ねるためsetTimeoutと関数との違いは何ですか?
setTimeout(console.log('Test'), 1000);
と
setTimeout(function(){ console.log('Test'); } , 1000);
理由。
console.logを関数と見なした場合、この2つの間の違いは何ですか?適切にすぐに1秒が、最初の呼び出しの後、この二番目のコールを尋ねるためsetTimeoutと関数との違いは何ですか?
setTimeout(console.log('Test'), 1000);
と
setTimeout(function(){ console.log('Test'); } , 1000);
理由。
setTimeout
の最初のパラメータには、関数が必要です。 console.log('Test')
を渡すとconsole.log('Test')
FIRSTと評価され、その結果が実際のタイムアウト手順に渡されます。あなたのケースでは、console.log('Test')
は、実際に機能を返さないので、console.log('Test')
を評価するときに、あなたがsetTimeout
関数に何も渡されないので、それは(何もしないし、1秒後に、コンソールにtest
を出力します。
秒でそれはあなたが望む結果を与える、1秒後に実行するために、あなたが実際に関数を渡す
あなたはこのような何か見て機能を想像することができます。
function setTimeout(functionToCall, timeToWait) {
// Some waiting procedure based on timeToWait
functionToCall();
}
免責をこれはWHではありません実際には関数のように見えます。
最初に、JSはconsole.log('Test')
を呼び出し、undefined
をsetTimeout
に渡します。これによりすぐに印刷されます。 2番目のケースでは、関数全体が最初に評価されることなくsetTimeout
に渡されます。
あなたは 'console.log'呼び出しの結果をsetTimeoutに渡しています – ASDFGerte