説明
$THIS は、現在のクラス・コンテキストを含みます。インスタンス・メソッドのクラス・コンテキストは、現在のオブジェクト参照 (OREF) です。クラス・メソッドのクラス・コンテキストは、文字列値としての現在のクラス名です。例えば、クラス・メソッド内から DO ..method() コマンドまたは SET ..property = value コマンドを発行すると、.. コンテキストは、$THIS の現在の値を使用して解決されます。オブジェクト・インスタンス内で参照を作成する場合は、相対ドット構文 (..) をお勧めします。
$THIS は通常、オブジェクト・インスタンス内で、別のオブジェクトにある関数を呼び出すときに使用されます。この場合、$THIS を使用し、現在のクラス・コンテキストをその関数に渡して、現在のオブジェクト・インスタンスに値を返すようにすることができます。
$THIS に有効なオブジェクト参照が含まれていない場合、InterSystems IRIS は <NO CURRENT OBJECT> エラーを返します。
$THIS は、以下のようなコンテキストで使用できます。
SET x = ##class(otherclassname).method($THIS)
DO ##class(superclass)$THIS.method(args)
この特殊変数では、SET コマンドを使用して値を設定することはできません。設定しようとすると、<FUNCTION> エラーが返されます。
詳細は、"クラスの定義と使用" の "オブジェクト特有の ObjectScript の機能" の章にある “$this 構文” を参照してください。OREF の詳細は、"クラスの定義と使用" の “OREF の基本” を参照してください。
FeedbackOpens in a new tab