ホームページ > 記事 > ウェブフロントエンド > JavaScriptのwith文の機能と副作用を詳しく解説
with ステートメントを定義する目的は、主に、同じオブジェクトを複数回記述する作業を簡略化することです
with ステートメントは、スコープ チェーンの先頭にオブジェクトを追加し、ステートメントを実行し、最後にスコープ チェーンを復元します元の状態に戻す
with(object){ statement; }
Function
オブジェクトが深くネストされている場合、コードの記述を簡素化するために通常 with ステートメントが使用されます。基本的に、新しい字句スコープは、オブジェクトの参照をスコープとして扱い、オブジェクトのプロパティをスコープ内の識別子として扱うことによって作成されます。クライアント側の JavaScript では、次のような式を使用して HTML 内の要素にアクセスできます。 form
document.forms[0].address.valueこの式がコード内で複数回出現する場合、with ステートメントを使用してフォーム オブジェクトをスコープ チェーンの最上位に追加できます
with(document.forms[0]){ name.value = ''; address.value = ''; emai.value = ''; }このアプローチでは、それぞれにプレフィックスを付ける必要がなくなるため、多くの入力作業が軽減されます。 document.forms[0] のプロパティ名。このオブジェクトはスコープ チェーンに一時的にマウントされます。JavaScript がアドレスなどの識別子を解析する必要がある場合、このオブジェクト内で自動的に検索されます。 [注意] with ステートメントはオブジェクトのプロパティを読み取るためのショートカットを提供します。オブジェクトのプロパティを作成します
オブジェクト o が属性 x を持つ場合、次のコードはこのプロパティに値 1 を割り当てます
var o = {x:0}; with(o) x = 1; console.log(o.x);//1属性 =1 がまったく同じである場合。これは、変数に対してLHSクエリが実行されるためです with文を使用したコードと比べて動作が遅くなります
var o = {}; with(o) x = 1; console.log(o.x);//undefined console.log(x);//1
Strictモード
strictモードではwith文の使用は禁止されています
var x = 1; var o = {}; with(o){ x = 2; } console.log(x);//2 console.log(o.x);//undefined
以上がJavaScriptのwith文の機能と副作用を詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。