with文はスコープチェーンを一時的に変更するのに使います。長いオブジェクト名のオブジェクトのプロパティを参照する場合などにタイプ量を節約するのに使うことができます。with文の構文は次の通りです
with文の構文
with (object) statement
with文を使うと次のような長ったらしい文が
with文を使わない例
frames[1].document.forms[0].address.value = ""; frames[1].document.forms[0].name.value = ""; frames[1].document.forms[0].email.value = "";
次のようにかけます
with文を使った例
with(frames[1].document.forms[0]){ name.value = ""; address.value = ""; email.value = ""; }
with文を使うと、指定したオブジェクト(上の例ではframes[1].document.forms[0])が一時的にスコープチェーンに追加されるのでnameとうつとframes[1].document.forms[0].nameを検索してくれます。with文は最適化が難しいなどの欠点があるため、with文はあまり使用しない方が良いとされることもあります。上のコードは代替策として次のように記述できます。
with文の代替案
var form = frames[1].document.forms[0]; form.name.value = ""; form.address.value = ""; form.email.value = "";