ホームページ > ウェブフロントエンド > jsチュートリアル > setTimeout() を引用符や括弧ありまたはなしで使用すると、その機能にどのような影響がありますか?

setTimeout() を引用符や括弧ありまたはなしで使用すると、その機能にどのような影響がありますか?

Susan Sarandon
リリース: 2024-11-13 00:56:02
オリジナル
476 人が閲覧しました

How does using setTimeout() with and without quotes and parentheses affect its functionality?

引用符と括弧の有無にかかわらず setTimeout() を使用する

概要

JavaScript の setTimeout( ) 関数を使用すると、開発者は指定した遅延後に関数が実行されるようにスケジュールを設定できます。ただし、setTimeout() を使用するにはさまざまな方法があり、それぞれに微妙な違いがあります。この記事は、setTimeout() を呼び出すときの括弧、引用符、またはその両方の使用の違いを明確にすることを目的としています。

関数参照の受け渡し

setTimeout() の主引数は次のとおりです。遅延後に実行される関数への参照になります。この参照は次のようになります:

  • 括弧: setTimeout(function() {...}, 3000);
  • 引用符も括弧もなし: setTimeout(alertMsg, 3000);
  • 引用符のみ: これは推奨されません。

引数の受け渡し

呼び出される関数に引数を渡すには、引用符と括弧を使用する方法を使用しないでください。代わりに、以下を使用します:

  • コールバック関数内に関数呼び出しを埋め込みます: setTimeout(function(){ foo(arg1, arg2); }, 1000);
  • ブラウザ間非互換メソッド: setTimeout(foo, 2000, arg1, arg2);

Callback Context

デフォルトでは、 callback はグローバル オブジェクト (ウィンドウ) です。変更するには:

  • バインドを使用します: setTimeout(function(){ this === YOUR_CONTEXT; }.bind(YOUR_CONTEXT), 2000);

セキュリティ

文字列を setTimeout() に渡すことは安全ではないため、推奨されません。これにより、関数が任意のスクリプトを実行されやすくなります。

結論

引用符付きの setTimeout() の使用は技術的には可能ですが、セキュリティとパフォーマンス上の理由からお勧めできません。関数とその引数を安全かつ効果的に渡すには、必要に応じて括弧または引用符のみのメソッドを使用します。さらに、コールバック コンテキストに注意し、それを制御するためにバインドを使用することを検討してください。

以上がsetTimeout() を引用符や括弧ありまたはなしで使用すると、その機能にどのような影響がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート