Files
freeCodeCamp/curriculum/challenges/ukrainian/02-javascript-algorithms-and-data-structures/object-oriented-programming/extend-constructors-to-receive-arguments.md
2023-07-24 08:34:47 -07:00

3.9 KiB
Raw Blame History

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
587d7dae367417b2b2512b79 Розширення конструкторів для отримання аргументів 1 18235 extend-constructors-to-receive-arguments

--description--

Конструктори Bird та Dog з останнього завдання працювали добре. Однак зверніть увагу, що всі пташки, створені за допомогою конструктора Bird, автоматично називаються Альбертом, мають синій колір і мають дві ніжки. Що робити, якщо потрібні пташки з різними значеннями назви та кольору? Змінити властивості кожної пташки можна вручну, але це займе багато часу:

let swan = new Bird();
swan.name = "Carlos";
swan.color = "white";

Припустимо, ви писали програму для відстеження сотень чи навіть тисяч різних пташок у пташнику. Створення всіх пташок займе багато часу, а потім ще потрібно змінити значення властивостей. Щоб легше створювати різні об’єкти Bird, ви можете спроєктувати конструктор для прийняття параметрів:

function Bird(name, color) {
  this.name = name;
  this.color = color;
  this.numLegs = 2;
}

Потім передайте значення як аргументи, щоб визначити кожну унікальну пташку в конструкторі Bird: let cardinal = new Bird("Bruce", "red");. Ви отримаєте новий екземпляр Bird із властивостями name та color з відповідними значеннями Bruce та red. Властивість numLegs досі має значення 2. cardinal має такі властивості:

cardinal.name
cardinal.color
cardinal.numLegs

Конструктор є більш гнучким. Тепер можна визначити властивості для кожної пташки під час її створення, що є однією з причин, чому конструктори JavaScript такі корисні. Вони групують об’єкти на основі спільних характеристик і поведінки та визначають план, який автоматизує їхнє створення.

--instructions--

Створіть ще один конструктор Dog. Цього разу налаштуйте його так, щоб він приймав параметри name та color, і встановіть властивість numLegs на 4. Потім створіть новий Dog, збережений у змінній terrier. Передайте два рядки як аргументи до властивостей name та color.

--hints--

Dog має отримати аргумент для name.

assert(new Dog('Clifford').name === 'Clifford');

Dog має отримати аргумент для color.

assert(new Dog('Clifford', 'yellow').color === 'yellow');

Dog повинен мати властивість numLegs зі значенням 4.

assert(new Dog('Clifford').numLegs === 4);

Створіть terrier за допомогою конструктора Dog.

assert(terrier instanceof Dog);

--seed--

--seed-contents--

function Dog() {

}

--solutions--

function Dog (name, color) {
  this.numLegs = 4;
  this.name = name;
  this.color = color;
}

const terrier = new Dog();