The 'self' symbol evaluates to the current object when used within a message context.
(setq my-class (send class :new '(state))) ; create MY-CLASS with STATE (send my-class :answer :isnew '() ; set up initialization '((setq state nil) SELF)) ; returning SELF (send my-class :answer :set-it '(value) ; create :SET-IT message '((setq state value))) (setq my-obj (send my-class :new)) ; create MY-OBJ of MY-CLASS (send my-obj :set-it 5) ; STATE is set to 5
Context: 'self' does not exist except within the context of a method and it's execution.
Note: In the previous example, there is a 'self' in the line that creates the ':set-it' message. What this does is to return the object as the last operation when you do an :isnew.
See the
self
symbol in the