Я читаю здесь мы можем использовать Object.create
для достижения наследования
Вот пример с Rectangle
, который наследуется от Shape
function Shape() {}
function Rectangle() {
Shape.call(this);
}
Rectangle.prototype = Object.create(Shape.prototype);
Rectangle.prototype.constructor = Rectangle;
var rect = new Rectangle();
Мне интересно, правильно ли использовать Object.setPrototypeOf
вместо Object.create
?
function Shape() {}
function Rectangle() {
Shape.call(this);
}
Object.setPrototypeOf(Rectangle.prototype, Shape.prototype);
var rect = new Rectangle();
Если это правильно, то мне интересно, почему так много примеров показывают наследование с Object.create
, потому что вам нужно беспокоиться о свойстве constructor
при использовании этого метода.
С Object.setPrototypeOf
вам не нужно переопределять consctrutor
реквизит, я считаю его более безопасным и простым.