JavaScript の "with" ステートメントの正当な使用法の探索
"with" ステートメントを使用する場合は、その利点と可能性の両方を考慮することが重要です欠点。特定のシナリオでは便利ですが、予期しない動作を避けるために責任を持って使用することが重要です。
「with」の正当な使用法の 1 つは、ES6 より前のブロック スコープ内の変数を定義するためです。 JavaScript は本来、変数のスコープを変数が定義されているブロックに設定しません。そのため、ループ内でクロージャーを宣言するときに問題が発生する可能性があります。
たとえば、「with」ステートメントのない次のコードは、同じ「」を共有します。複数のタイムアウト関数にわたる num" 変数:
for (var i = 0; i < 3; ++i) { var num = i; setTimeout(() => { alert(num); }, 10); }
"with" ステートメントを使用すると、それぞれの "num" 変数を分離するために必要なブロック スコープをシミュレートできます。 timeout:
for (var i = 0; i < 3; ++i) { with ({num: i}) { setTimeout(() => { alert(num); }, 10); } }
これは、ブロック内で宣言された変数のスコープには影響しないことに注意してください。
「with」のもう 1 つの潜在的な使用法は、コードの整理です。頻繁にアクセスされるオブジェクト メンバーを「with」ブロックのスコープ内に配置すると、コードの読み取りと保守が容易になります。ただし、潜在的なパフォーマンスの問題や予期しない動作を避けるために、これを慎重に使用することが重要です。
以上がJavaScript の「with」ステートメントが正当に使用されるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。