ホームページ  >  記事  >  ウェブフロントエンド  >  JQuery_jquery の SetTimeOut のパラメータ受け渡しの問題についてのディスカッション

JQuery_jquery の SetTimeOut のパラメータ受け渡しの問題についてのディスカッション

WBOY
WBOYオリジナル
2016-05-16 17:34:071245ブラウズ

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
🎜>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。