Prototype-based languages and systems are made up of self describing
objects, unlike classical object oriented systems in which objects
are described by classes.
Protototype-based systems were originally called prototype-based
because new objects are created directly, by copying prototypes,
rather than indirectly, by using classes. More recently, the
philosphical focus of prototype-based programming (on concrete
objects, rather than on abstractions like classes)
has been recognised as at least as important as how objects are
created, so this kind of programming has also been called
object-based or object-centered.