- Продолжение
-
СобакаКонструктор из последнего поста работал хорошо. Однако обратите внимание, что всеСобакикоторые созданы сСобакаКонструктор автоматически называется Anakin, коричневый цвет и имеет четыре ноги. Что если вы хотите собак с разными значениями для имени и цвета? Можно изменить свойства каждой собаки вручную, но это было бы большой работой:
let husky = new Dog(); husky.name = "Rex"; husky.color = "blue";
- Предположим, вы писали программу, чтобы отслеживать сотни или даже тысячи разных собак в вольере. Для создания всех собак потребуется много времени, а затем изменить свойства на разные значения для каждого. Легче создать разные
СобакаОбъекты, вы можете спроектировать конструктор собаки для принятия параметров:
function Dog(name, color) {
this.name = name;
this.color = color;
this.numLegs = 4;
}
let terrier = new Dog("Ewok", "tan");
- Затем передайте значения в качестве аргументов, чтобы определить каждую уникальную собаку в
СобакаКонструктор:Пусть собака ("ewok", "tan");Это дает новый экземпляр собаки симяиЦветСвойства установлены вЭвокиТан, соответственно.NumbelgsСобственность все еще установлена на 4.Терьеримеет эти свойства:
console.log(terrier.name); // will print out Ewok console.log(terrier.color); // will print out tan console.log(terrier.numLegs); // will print out 4
- Конструктор более гибкий. Теперь можно определить свойства для каждой собаки во время ее создания, что является одним из способов, которым конструкторы JavaScript настолько полезны. Они группируют объекты вместе на основе общих характеристик и поведения и определяют план, который автоматизирует их создание.
Оригинал: «https://dev.to/rthefounding/extend-constructors-to-receive-arguments-3dnb»