「this」キーワード
this キーワードは、現在の関数を保持するコンテナー (メインの論理パーツ) を参照する定義済み修飾子を提供します。次のような状態について検討します。
あるプログラムが runningTotal という名前のグローバル変数を宣言してから、
main() 関数から関数 getCustomer() を呼び出します。
この関数は、runningTotal という名前の独自のローカル変数を宣言します。
オリジナルの runningTotal は、理論上は関数の有効範囲内にありますが、
非修飾名はローカル・バージョンを参照しています。
オリジナルにアクセスするには、次のように修飾子 this を使用します。
runningTotal = this.runningTotal + myCustomer.customerBalance;
ここで、
ローカルの runningTotal 変数が main() からの runningTotal 変数の
値で初期化され、現在の顧客の残高がローカルの合計に追加されます。まれなケースですが、this キーワードを使用して、代入文内での値の設定ブロックの動作をオーバーライドすることができます。ここでの this は、値の設定ブロックが存在する宣言として有効範囲を設定します。 詳しくは、値の設定ブロックを参照してください。
例
プログラム myProgramA があり、これは関数 main() を呼び出し、
次に main() は myFunctionB() を呼び出すと仮定します。
これらのパーツのそれぞれは、変数 varX を宣言するものとします。
program myProgramA type BasicProgram
varX STRING = "program";
function main()
varX STRING = "main";
myFunctionB();
end
function myFunctionB()
varX STRING = "Function B";
writeStdErr(this.varX);
end
end
変数 this.varX は、値「program」をコンソールに表示します。 これは、プログラムが、myFunctionB() を保持するメインの論理パーツであるためです。