window.setTimeout または window.setInterval のいずれであっても、関数名を呼び出しハンドルとして使用する場合はパラメーターを受け取ることはできません。カスタム パラメーターであってもイベント パラメーターであっても、パラメーターを渡したい場合の解決策は、この関数に基づいてカプセル化のレイヤーを作成することです。具体的な原理はまだ明らかではありませんが、以下の方法でこの問題を確実に解決できます。
最初に簡単なコードを見てください:
function show(){
alert("Hello World");
setTimeout(show,1000);このコードは Hello world が 1 秒後に表示されますが、
setTimeOut(show(),1000);
に変更するとすぐに表示されてしまい、遅延効果が得られません。ただし、引用符を追加しても問題ありません。例:
setTimeOut("show()",1000);
は問題ありません。ただし、パラメータを指定しても機能しません。例:
setTimeOut("show(name)",1000)
この時点では、別の関数を記述するという比較メソッドがあります。パラメータなしの関数を返します。 関数は次のとおりです:
コードをコピーします
コードは次のとおりです: script language="javascript" > function show(name)
{alert("Hello World:" name);}
function _show(name)
{
return function()
{
show(name);
}
setTimeout(_show(name),1000);
function
🎜>