with文は、処理文で使用する初期設定オブジェクトを指定する制御構文。
初期設定オブジェクトを指定すると、with文内では、そのオブジェクトを指定することなく、プロパティ名やメソッド名だけで、プロパティやメソッドを呼び出せる。
構文
with ( オブジェクト名 ) {
// 処理文
}
// 処理文
}
「オブジェクト名」に指定したオブジェクトを、「処理文」で使う初期設定オブジェクトとする。
サンプル
with文を使う場合と、with文を使わない場合の比較。
with文を使うと
with文内では、PI
だけで、「Math」オブジェクトの「PI」プロパティを呼び出せる。
<script type="text/javascript">
var $varA, $varX, $varY;
var $varR = 10;
with ( Math ) {
$varA = 2 * PI * $varR;
$varB = PI * $varR * $varR;
}
document.write( "半径が" + $varR + "の円周の長さ: " + $varA + "<br />" );
document.write( "半径が" + $varR + "の円の面積: " + $varB + "<br />" );
</script>
var $varA, $varX, $varY;
var $varR = 10;
with ( Math ) {
$varA = 2 * PI * $varR;
$varB = PI * $varR * $varR;
}
document.write( "半径が" + $varR + "の円周の長さ: " + $varA + "<br />" );
document.write( "半径が" + $varR + "の円の面積: " + $varB + "<br />" );
</script>
↓↓↓出力結果↓↓↓
with文を使わないと
Math.PI
で、「Math」オブジェクトの「PI」プロパティを呼び出している。
<script type="text/javascript">
var $varA, $varX, $varY;
var $varR = 10;
$varA = 2 * Math.PI * $varR;
$varB = Math.PI * $varR * $varR;
document.write( "半径が" + $varR + "の円周の長さ: " + $varA + "<br />" );
document.write( "半径が" + $varR + "の円の面積: " + $varB + "<br />" );
</script>
var $varA, $varX, $varY;
var $varR = 10;
$varA = 2 * Math.PI * $varR;
$varB = Math.PI * $varR * $varR;
document.write( "半径が" + $varR + "の円周の長さ: " + $varA + "<br />" );
document.write( "半径が" + $varR + "の円の面積: " + $varB + "<br />" );
</script>
↓↓↓出力結果↓↓↓