A selector is just a number that represents a property or method uniquely. It can be considered an odd cross between procedure pointers and interfaces. One peculiarity of the SCI object model is that an object is characterized not by its class but by the methods that class implements. In the Ruby community, this is called duck typing - "If it #walks like a Duck and it #quacks like a Duck, then it must be a Duck". It has multiple uses. Say you have a List object that contains a number of other objects (buttons in the case of my Keypad class). You want to be able to show/hide them all at once. Now, in the KeypadButton class we implement show and hide methods. We can now ask the List object to call these methods on all the contained objects by doing:
(self:eachElementDo(#show))
Another trick that would be possible to use in SCI (but was never exploited in Sierra games) is to do selectable callbacks. In the template game, if you start a MoveTo object going, it calls the #cue method when the actor reaches his destination (the state machine paradigm). This could be generalized to call any method the programmer likes.