Self is a prototype-based dynamic object-oriented programming language, environment, and virtual machine centered around the principles of simplicity, uniformity, concreteness, and liveness.
Reserved variable which contains the object handle of the object in which it occurs. Used to enable objects to send messages to themselves. If you send a message to SELF from object A, object A is the receiver of the message; if you send a message to self from object C, object C is the receiver of the message. SELF always refers to the object currently executing, even if the method is one which is being inherited. For example, imagine two objects, A' and B', instances of classes A and B where B inherits from A. A implements instance method, "calculateValue". The "calculateValue" method sends the message "getObjectConstant" to self. If B' gets sent the "calculateValue" message, the method is inherited from class A. When "calculateValue" sends a message "getObjectConstant", the message actually gets sent to B'. If A' were to be sent the "calculateValue" message, then the send to SELF would send the message to A'. You can use SELF exactly like any data item of type Object Reference, so you can also pass it as a parameter to other methods.