В программировании есть принцип « <code>Don't Repeat Yourself (DRY)</code> . Причина повторного кода - проблема, потому что для любого изменения требуется код исправления в нескольких местах. Это обычно означает больше работы для программистов и больше возможностей для ошибок. В приведенном ниже примере обратите внимание, что метод <code>describe</code> разделяет <code>Bird</code> and <code>Dog</code> : <blockquote> Bird.prototype = { <br> конструктор: Птица, <br> Опишите: function () { <br> console.log («Мое имя» + this.name); <br> } <br> }; <br><br> Dog.prototype = { <br> конструктор: Собака, <br> Опишите: function () { <br> console.log («Мое имя» + this.name); <br> } <br> }; </blockquote> Метод <code>describe</code> повторяется в двух местах. Код можно редактировать, чтобы следовать принципу <code>DRY</code> , создав <code>supertype</code> (или родительский элемент) под названием <code>Animal</code> : <blockquote> функция Animal () {}; <br><br> Animal.prototype = { <br> конструктор: Animal, <br> Опишите: function () { <br> console.log («Мое имя» + this.name); <br> } <br> }; </blockquote> Поскольку <code>Animal</code> включает метод <code>describe</code> , вы можете удалить его из <code>Bird</code> and <code>Dog</code> : <blockquote> Bird.prototype = { <br> конструктор: Птица <br> }; <br><br> Dog.prototype = { <br> конструктор: Собака <br> }; </blockquote>
Метод <code>eat</code> повторяется как у<code>Cat</code> и у<code>Bear</code> . Измените код в духе <code>DRY</code> , переместив метод <code>eat</code> на <code>supertype</code><code>Animal</code> .