Dynamic subclassing
To demonstrate dynamic subclassing, start with the simplest object: an instance of the Object class. The Object class has no properties. To create an object, use the NEW operator, along with the class name and the call operator, which would include any parameters for the class (none are used for the Object class).
obj = new Object( )
This statement creates a new instance of the Object class and assigns an object reference to the variable obj. Unlike variables that contain simple data types, which actually contain the value, an object reference variable contains only a reference to the object, not the object itself. This also means that making a copy of the variable:
copy = obj
does not duplicate the object. Instead, you now have two variables that refer to the same object.
To assign values to properties, use the dot operator. For example,
obj.name = "triangle"
obj.sides = 3
obj.length = 4
If the property does not exist, it is added; otherwise, the value of the property is simply reassigned. This behavior can cause simple bugs in your programs. If you mistype a property name during an assignment, for example,
obj.wides = 4 // should be s, not w
a new property is created instead of changing the value of the existing property you intended. To catch these kinds of problems, use the assignment-only := operator when you know you are not initializing a property or variable. If you attempt to assign a value to a property or variable that does not exist, an error occurs instead of creating the property or variable. For example:
obj.wides := 4 // Error if wides property does not already exist