Javascript наследование свойств, определенных с помощью Object.defineProperty
У меня есть следующий родительский класс...
function Parent(id, name, parameters) {
Object.defineProperty(this, "id", {
value: id
});
Object.defineProperty(this, "name", {
value: name,
writable: true
});
};
и соответствующий дочерний класс:
function Child(id, name, parameters) {
Object.defineProperty(this, "phone", {
value: parameters.phone,
writable: true
});
};
Я попытался применить наследование, добавив что-то вроде Child.prototype = Object.create (Parent.prototype);, но это, очевидно, не работает.
Как я могу наследовать от класса Parent таким образом, чтобы я мог использовать свойства id и name.
1 ответ
Я пытался применить наследование, добавив что-то вроде
Child.prototype = Object.create(Parent.prototype);
Да, вы должны сделать это, чтобы создать цепочку прототипов между вашими .prototype
объекты. У вас есть определенные методы, не так ли?
Как я могу наследовать от класса Parent таким образом, чтобы я мог использовать свойства id и name.
Вам в основном нужен "супер" вызов на Parent
конструктор, так что он устанавливает ваши свойства на Child
экземпляры:
function Child(id, name, parameters) {
Parent.call(this, id, name, parameters);
Object.defineProperty(this, "phone", {
value: parameters.phone,
writable: true
});
}