「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > setTimeout に文字列を渡す必要があるでしょうか?

setTimeout に文字列を渡す必要があるでしょうか?

2024 年 11 月 8 日に公開
ブラウズ:813

Is It Ever Necessary to Pass Strings to setTimeout?

setTimeout に文字列を渡す: 必要性の問題

多くの開発者は、パフォーマンス上の懸念、潜在的なセキュリティ リスク、および非推奨のため、setTimeout に文字列を渡す習慣に眉をひそめています。状態。ただし、この構文が有益なシナリオがまれに存在する可能性があります。

非推奨の議論

setTimeout と setInterval の従来の構文では、実行するコードを表す文字列を渡す必要がありました。例:

setTimeout('doSomething(someVar)', 10000);

ただし、最新の JavaScript では代わりに関数参照の使用が推奨されています。

setTimeout(function() {
    doSomething(someVar);
}, 10000);

文字列の引数

推奨される構文から逸脱する正当な理由があるかどうかを検討するときに議論が生じます。考えられる引数の 1 つは、グローバル スコープ内に存在するが、ローカルでオーバーライドされた可能性がある関数または変数にアクセスしたいということです。

The Case Against Strings

この理論的根拠にもかかわらず、文字列の使用はsetTimeout では使用しないことを強くお勧めします。グローバル変数には、ウィンドウ オブジェクトのプロパティを通じて引き続きアクセスできます。例:

setTimeout(window.doSomething(someVar), 10000);

Historical Tolerance

setTimeout および setInterval の引数として文字列を使用できる可能性があります。歴史的要因に根ざしています。 JavaScript の初期バージョンでは文字列のみがサポートされていました。関数参照を渡す機能の追加は後から追加されたものです。下位互換性を確保するために、ブラウザでは文字列構文が非推奨であっても引き続き使用できます。

結論

場合によっては文字列を setTimeout に渡すことは技術的には可能ですが、一般的にはそうではありません。代替アプローチが利用できるため、推奨されます。関数参照を使用すると、パフォーマンスが向上し、セキュリティが強化され、最新のコード ガイドラインに準拠します。したがって、非推奨の文字列構文は、明確さ、保守性、および全体的なコード品質を考慮して避ける必要があります。

リリースステートメント この記事は次の場所に転載されています: 1729380675 侵害がある場合は、[email protected] に連絡して削除してください。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3