Система прототипов выглядит гораздо более гибкой, чем традиционная система классов, но люди, похоже, чувствуют, что довольны так называемыми "лучшими практиками", которые имитируют традиционную систему классов:
function foo() {
// define instance properties here
}
foo.prototype.method = //define instance method here
new foo()
Должны быть другие вещи, которые прототипная система может делать со всей гибкостью.
Используются ли для прототипной системы вне классов подражания? Какие вещи могут создавать прототипы, какие классы не могут, или их нет?