Очевидно, в JavaScript есть идиома для реализации методов экземпляра на основе классов следующим образом:
function MyClass(){...}
MyClass.prototype.methodA = function(){...}
MyClass.prototype.methodB = function(){...}
...
Почему люди не используют вместо этого эту менее многословную форму:
function MyClass(){...}
MyClass.prototype = MyClass;
MyClass.methodA = function(){...}
MyClass.methodB = function(){...}
Этоочевидно, не работает, если MyClass должен наследовать от некоторого базового класса (в этом случае обычно следует устанавливать прототип на новый экземпляр базового класса).
Однако, иерархия с глубоким наследованием в наши дни становится редкостью (спасибопрятаться от печатания и смешивать между прочим).
Я что-то упустил?
Делает ли MyClass.prototype = MyClass .constuctor более беспорядочным, чем он есть сейчас?Это мешает плохим способом с typeof, instanceof или даже getPrototypeOf ()?
Должен ли он быть повышен или считаться вредным?