Здравствуйте!
class A{ constructor(){ this.obj = {'b':1, 'c': 2}; } };
class B extends A{
constructor(){super(); this.nvmProp = 'zZzz'}
changeObj(){ this.obj.b = 10; }
};
class C extends A{
constructor(){super(); this.nvmProp = 'zZzzZz'}
changeObj(){ this.obj.c = 20; }
};
let a = new A(),
b = new B(),
c = new C();
b.changeObj();
c.changeObj();
console.log(a.obj); /* {b:1,c:2} ofc. */
Когда я вызываю метод
b.changeObj()
а также
с.changeObj()
мне нужно чтобы они изменяли один и тот же объект, офк сейчас этого не происходит. Можно ли это сделать с моделью прототипного наследования
js
? Я конечно могу реорганизовать код таким образом, чтобы методы
SomeObject.changeObj()
возвращали свою часть объекта, к примеру
b.changeObj() /* return {b:10} */
но возможно есть и другие варианты! Код разумеется утрирован для примера, в реалиях разумеется методы выполняют больше работы