Я экспериментировал с прототипным наследованием javascript и столкнулся с чем-то, что, возможно, можно объяснить.
function dinner(food,drink){
this.food=food;
this.drink=drink;
}
dinner.prototype.desert=function(){
var x = this.food;
return x.split(' ')[0]+' Ice Cream Float';
}
function superSupper(steak){
this.steak=steak;
}
superSupper.prototype= new dinner();
superSupper.prototype.constructor=superSupper;
var x = new superSupper('corn','beet juice')
x.grub='beef';
x.clams = 'nope';
В приведенном выше коде я создаю нового конструктора "superSupper" и заставляю его наследоваться от ужина. когда это просматривается в console.log, я вижу это:
superSupper
clams: "nope"
grub: "beef"
steak: "corn"
__proto__: dinner
constructor: function superSupper(steak){
drink: undefined
food: undefined
__proto__: dinner
как получить доступ к напиткам и свойствам пищи, которые я унаследовал от ужина?
p.s. пробуя это: "x.food = 'some string'" только создает новое свойство в экземпляре superSupper под названием food, но не присваивает значение унаследованному свойству food.