of the instance of the enclosing aggregate. Classes are reference types, structs and unions are value types. In the first version of D, the keyword this is used as a pointer to the instance of the object the method is bound to, while in D2 it has the character of an implicit ref function argument. Dylan In the programming language Dylan, which is an object-oriented language that supports multimethods and doesn't have a concept of this, sending a message to an object is still kept in the syntax. The two forms below work in the same way; the differences are just syntactic sugar. object.method(param1, param2) and method (object, param1, param2) Eiffel Within a class text, the current type is the type obtained from the current class. Within features (routines, commands and queries) of a class, one may use the keyword Current to reference the current class and its features. The use of the keyword Current is optional as the keyword Current is implied by simply referring to the name of the current class feature openly. For example: One might have a feature `foo' in a class MY_CLASS and refer to it by: class MY_CLASS feature -- Access foo: INTEGER my_function: INTEGER do Result := foo end end Line #10 (above) has the implied reference to Current by the call to simple `foo'. Line #10 (below) has the explicit reference to Current by the call to `Current.foo'. class MY_CLASS feature -- Access foo: INTEGER my_function: INTEGER do Result := Current.foo end end Either approach is acceptable to the compiler, but the implied version (e.g. x := foo) is preferred as it is less verbose. As with other languages, there are times when the use of the keyword Current is mandated, such as: class MY_CLASS feature -- Access my_command -- Create MY_OTHER_CLASS with `Current' local x: MY_OTHER_CLASS do create x.make_with_something (Current) end end In the case of the code above, the call on line #11 to make_with_something is passing the current class by explicitly passing the keyword Current. Java The keyword this is a Java language keyword that represents the current instance of the class in which it appears. It is used to access class variables and methods. Since all instance methods are virtual in Java, this can never be null. JavaScript In JavaScript, which is a programming or scripting language used extensively in web browsers, this is an important keyword, although