ホームページ >ウェブフロントエンド >jsチュートリアル >Javascript タイマーがパラメータを渡してメソッドを呼び出す

Javascript タイマーがパラメータを渡してメソッドを呼び出す

yulia
yuliaオリジナル
2018-09-08 16:58:061827ブラウズ

JavaScriptのタイマー呼び出しメソッドでパラメータを渡し、必要な友達はそれを参照できます。

window.setTimeout であっても window.setInterval であっても、関数名を呼び出しハンドルとして使用する場合、パラメーターを受け取ることはできません。多くの場合、パラメーターを受け取る必要があるため、それを解決する方法を見つける必要があります。
たとえば、関数 hello(_name) は、ユーザー名のウェルカム メッセージを表示するために使用されます:

次のようにコードをコピーします:

var userName="Tony"; 
//根据用户名显示欢迎信息 
function hello(_name){ 
alert("hello,"+_name); 
}

現時点では、次のステートメントを使用して、 hello 関数を 3 秒間実行します:
window.setTimeout(hello(userName) ,3000);
これにより、hello 関数がすぐに実行され、戻り値が呼び出しハンドルとして setTimeout 関数に渡されます。その結果は、プログラムが必要とするものではありません。望ましい結果は、文字列形式を使用することで実現できます:
window.setTimeout( "hello(userName)",3000);
ここでの文字列は、userName が変数を表す JavaScript コードです。記述は直感的ではなく、場合によっては関数名を使用する必要があります。これを実現するためのちょっとしたトリックがあります。 パラメーターを使用して関数を呼び出す:

次のようにコードをコピーします:

<script language="JavaScript" type="text/javascript"> 
<!-- 
var userName="jack"; 
//根据用户名显示欢迎信息 
function hello(_name){ 
alert("hello,"+_name); 
} 
//创建一个函数,用于返回一个无参数函数 
function _hello(_name){ 
return function(){ 
hello(_name); 
} 
} 
window.setTimeout(_hello(userName),3000); 
//此处也可以写为window.setTimeout( function(){return hello(userName)}, 3000); 
//就不用再定义function _hello() 
//--> 
</script>

関数 _hello がここで定義されています。外部関数のパラメータはパラメータを受け取り、パラメータなしで関数を返すために使用されます。 window.setTimeout 関数を呼び出すときにパラメータを使用する必要はありません。パラメーターのない関数ハンドル。これにより、パラメーターを渡す機能が実現されます。

以上がJavascript タイマーがパラメータを渡してメソッドを呼び出すの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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