JMPスクリプト内で変数が参照されると、JMPは指定のルールセットを使用して変数の格納場所を解決します。変数が修飾名で参照された場合、その修飾の設定に基づいて解決されます。変数が非修飾名で参照された場合は、解決方法が少し複雑です。JMPは、実行スクリプトを使用して、実行ポイントを表す適用範囲の階層内を探します。ここでは、名前付き変数参照の解決に使用されるルールについて説明します。
JMP 9以降でも、変数名のデフォルトの解決方法がJMP 8以前と同様なので、既存のJSLスクリプトは同様に実行されます。JMP 9以降では、修飾のある名前参照とそうでない名前参照の違いを理解することが重要です。
修飾のある名前参照は、:演算子および::演算子を使って、参照する変数の場所やその作成場所に関する特定の情報を提供します。次に示すのは、修飾のある名前参照の例です。
:var
::globalvar
datatable:var
nsref:var
"nsname":var
修飾のない名前参照では、変数の場所や作成場所が明示的に特定されません。参照にはスコープ演算子(:または::)の指定がありません。修飾のない名前参照を解決する際のJMPの動作を変更するには、Names Default To Here(1)関数を使用します。変数名の解決に関する詳細は、名前解決のルールを参照してください。
JMPは、変数参照を解決するために規則を順番に適用します。詳細については、名前を解決するためのルールを参照してください。