Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.

For information on migrating to InterSystems IRIS, see the InterSystems IRIS Migration Guide and Migrating to InterSystems IRIS, both available on the WRC Distributions page (login required).


Contains the current class context.




$THIS contains the current class context. The class context for an instance method is the current object reference (OREF). The class context for a class method is the current classname as a string value. For example, if you issue the command DO ..method() or SET = value from within a class method, the .. context is resolved using the current value of $THIS. When making a reference within an object instance, the relative dot syntax (..) is preferred.

$THIS is commonly used when you are within an object instance and you call a function that is on another object. In this circumstance, you can use $THIS to pass the current class context to that function, so that it can return a value to your current object instance.

When $THIS does not contain a valid object reference, Caché returns a <NO CURRENT OBJECT> error.

$THIS can be used in the contexts such as the following:

SET x = ##class(otherclassname).method($THIS)

DO ##class(superclass)$THIS.method(args)

This special variable cannot be set to a value using the SET command. Attempting to do so results in a <FUNCTION> error.

For further details, refer to “$this Syntax” in Object-specific ObjectScript Features chapter of Using Caché Objects. For information on OREFs, see “OREF Basics” in Using Caché Objects.

See Also