Files
freeCodeCamp/curriculum/challenges/ukrainian/02-javascript-algorithms-and-data-structures/object-oriented-programming/extend-constructors-to-receive-arguments.md

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 з останнього завдання працювали добре. Однак зверніть увагу, що всі Birds, створені за допомогою конструктора Bird, автоматично називаються Альбертом, мають синій колір і мають дві ніжки. Що робити, якщо вам потрібні birds з різними значеннями для назви та кольору? Змінити властивості кожної bird можна вручну, але це займе багато часу:

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

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

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

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

cardinal.name
cardinal.color
cardinal.numLegs

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

--instructions--

Створіть ще один конструктор Dog. Цього разу встановіть його так щоб прийняти параметри name та color і встановіть властивість numLegs на 4. Потім створіть новий Dog, збережений у змінній terrier. Передайте два рядки в якості аргументів для властивостей name and 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();