я чего-то не понимаю> Давайте посмотрим на примере MDN в:Javascript- наследование прототипов
function Product(name, price) {
this.name = name;
this.price = price;
if (price < 0) {
throw RangeError('Cannot create product ' +
this.name + ' with a negative price');
}
return this;
}
function Food(name, price) {
Product.call(this, name, price);
this.category = 'food';
}
Food.prototype = Object.create(Product.prototype);
Food.prototype.constructor = Food; // Reset the constructor from Product to Food
Почему я должен написать эту часть:
Food.prototype = Object.create(Product.prototype);
Food.prototype.constructor = Food;
это не Product.call(this, name, price);
уже скопировано это свойство (прототип) от продукта к пище?
Возможный дубликат [Как работает JavaScript .prototype?] (Http://stackoverflow.com/questions/572897/how-does-javascript-prototype-work) –
Нет, это 'Product.call (...)' не имеет ничего общего с прототипом. Он только инициализирует свойства 'name' и' price' экземпляра – Bergi
Почему? Потому что прототип не аргументирован? – Alexa