with ステートメントは、
.
(ドット) 演算子における左側 (オブジェクト) を省略した場合に参照するオブジェクトを指定するものです。
構文は以下の通りです。
with(expression)
ステートメントまたはブロック
「ステートメントまたはブロック」内で、左側が省略された
.
(ドット)演算子が使用された場合、その
.
(ドット)演算子が参照するオブジェクトは、with ステートメントの expression で指定したオブジェクトになります。
例:
with(obj) .member = 1;
with(obj)
{
.member1 = 1;
.member2 = 2;
.member3++;
.method();
}
このステートメントは特に、オブジェクトに大量のプロパティを設定したり、連続してメソッドを呼ぶ際に、タイピングを減らすことができます。
たとえば
var object = new Foo();
object.setPos(0, 0);
object.setSize(100, 100);
object.name = "名前無し";
object.color = 0xffffffff;
のようなスクリプトを以下のように書くことができます。
var object = new Foo();
with(object)
{
.setPos(0, 0);
.setSize(100, 100);
.name = "名前無し";
.color = 0xffffffff;
}