Поскольку numLegs , вероятно, будет иметь одинаковое значение для всех экземпляров Bird , у вас по существу есть дублируемая переменная numLegs внутри каждого экземпляра Bird . Это может быть не проблема, когда есть только два экземпляра, но представьте, есть ли миллионы экземпляров. Это было бы много дублированных переменных. Лучше всего использовать prototype Bird's . prototype - это объект, который используется для ВСЕХ экземпляров Bird . Вот как добавить numLegs в Bird prototype :
Bird.prototype.numLegs = 2;Теперь все экземпляры
Bird имеют свойство numLegs . console.log (duck.numLegs); // печатает 2Поскольку все экземпляры автоматически имеют свойства на
console.log (canary.numLegs); // печатает 2
prototype , подумайте о prototype как о «рецепте» для создания объектов. Обратите внимание, что prototype duck и canary является частью конструктора Bird как Bird.prototype . Почти каждый объект в JavaScript имеет свойство prototype которое является частью созданной им функции-конструктора.Добавьте свойство numLegs в prototype Dog