スコープ |
●変数 | 値と有効範囲を持つ |
●属性 | 値と有効範囲を持つ |
●ハンドラ | 局所変数の有効範囲 |
●スクリプトオブジェクト | 属性の有効範囲 |
同名の識別子が同じ値を意味する範囲で、主に変数の範囲を言う。
宣言(declaration)と定義(definition)によって有効範囲は決定される。
宣言とは、変数を使う事を示す事で、local文やglobal文がこれに当たる。
定義とは、変数に値を設定する事で、set命令などで最初に値を代入することがこれに当たる。宣言がない場合、定義と同時に(通常は)local宣言が行われる。
大域変数を使わない限り、変数の有効範囲はハンドラの中だけに限られる。
属性とハンドラ、スクリプトオブジェクトの場合は、宣言と定義は同時に行われる。
属性は宣言されたスクリプトオブジェクト内全域が有効範囲となる。
ハンドラは、宣言されたスクリプトオブジェクト内で有効となる。
スクリプトオブジェクトは、定義された場所がハンドラの中ならばハンドラ内が、スクリプトオブジェクトのトップレベルならばスクリプトオブジェクト内全域が有効範囲となる。
text item delimiters等の定義済み変数は、スクリプトの中だけではなくOS全体で共有される、より有効範囲の広い大域変数と言える。