The Art of the JavaScript Metaobject Protocol
JavaScript’s prototypes are a simple and elegant way to represent a very simple form of inheritance in an object-oriented program. This talk introduces examples of semantics from other programming systems, such as mixins, singleton metaclasses, aspect-oriented programming and heterogeneous inheritance.