「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() を保持するメインの論理パーツであるためです。


フィードバック