Files
freeCodeCamp/curriculum/challenges/ukrainian/02-javascript-algorithms-and-data-structures/object-oriented-programming/understand-the-constructor-property.md

2.7 KiB
Raw Blame History

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
587d7daf367417b2b2512b7e Розуміння властивостей конструктора 1 301327 understand-the-constructor-property

--description--

Є особлива властивість constructor, що знаходиться в екземплярі об'єкта duck і beagle, які ми створили у попередніх завданнях:

let duck = new Bird();
let beagle = new Dog();

console.log(duck.constructor === Bird); 
console.log(beagle.constructor === Dog);

Обидва ці console.log виклики відображатимуться true у консолі.

Зверніть увагу, що властивість constructor є посиланням на функцію конструктора, що створила екземпляр. Перевага властивостей constructor полягає в тому, що можна перевірити цю функцію та визначити, який це об'єкт. Ось приклад того, як це можна використовувати:

function joinBirdFraternity(candidate) {
  if (candidate.constructor === Bird) {
    return true;
  } else {
    return false;
  }
}

Примітка: Через те, що властивості constructor можуть бути перезаписані (це буде показано у наступних двох завданнях), загалом, краще використовувати метод instanceof для перевірки типу об'єкта.

--instructions--

Напишіть функцію joinDogFraternity, яка приймає параметр candidate та, використовуючи властивість constructor, перетворюється на true, за умови, що кандидат - це Dog, в іншому випадку - на false.

--hints--

joinDogFraternity має бути визначено як функція.

assert(typeof joinDogFraternity === 'function');

joinDogFraternity має перетворюватись на true, якщо candidate є екземпляром Dog.

assert(joinDogFraternity(new Dog('')) === true);

joinDogFraternity повинно використовувати властивість constructor.

assert(/\.constructor/.test(code) && !/instanceof/.test(code));

--seed--

--seed-contents--

function Dog(name) {
  this.name = name;
}

// Only change code below this line
function joinDogFraternity(candidate) {

}

--solutions--

function Dog(name) {
  this.name = name;
}
function joinDogFraternity(candidate) {
  return candidate.constructor === Dog;
}