Objects and Prototypes

Any object in the language has a prototype field. prototype is a reference to some type object (a.k.a. class).

instance-of relationship

prototype field establishes instance-of relationship between object and its type.

:!: This schema of instance-of relationship is simpler and thus different from the one used in JavaScript.

prototype field (a.k.a. attribute) is, as a rule, read-write property so can be changed at runtime. Changing value of prototype from one class to another is known as dynamic subclassing.