- До сих пор вы добавляли свойства для
Прототипиндивидуально:
Dog.prototype.numLegs = 4;
- Это становится утомительным после более чем нескольких свойств.
Dog.prototype.eat = function() {
console.log("nom nom nom");
}
Dog.prototype.describe = function() {
console.log("My name is " + this.name + ".");
}
- Более эффективный способ — установить
Прототипна новый объект, который уже содержит свойства. Таким образом, свойства добавляются все сразу:
Dog.prototype = {
numLegs: 4,
eat: function() {
console.log("nom nom nom");
},
describe: function() {
console.log("My name is " + this.name + ".")
}
};
Не забудьте установить свойство конструктора при изменении прототипа
- Существует один важный побочный эффект вручную установку прототипа на новый объект. Это стирает
Конструкторимущество! Это свойство может быть использовано для проверки, какой конструктор функции создал экземпляр, но поскольку имущество было перезаписано, он теперь дает ложные результаты: - Чтобы исправить это, всякий раз, когда прототип вручную устанавливается на новый объект, не забудьте определить
Конструкторимущество:
function Dog(name) {
this.name = name;
}
Dog.prototype = {
constructor: Dog, // <----
numLegs: 4,
eat: function() {
console.log("nom nom nom");
},
describe: function() {
console.log("My name is " + this.name);
}
};
Оригинал: «https://dev.to/rthefounding/changing-the-prototype-to-a-new-object-110c»