2018-10-08 13:34:43 -04:00

2.9 KiB

id, title, localeTitle, challengeType
id title localeTitle challengeType
587d7daf367417b2b2512b7e Understand the Constructor Property Entender la propiedad del constructor 1

Description

Hay una propiedad de constructor especial ubicada en las instancias de objeto duck y beagle que se crearon en los desafíos anteriores:
let duck = new Bird();
let beagle = new Dog();

console.log(duck.constructor === Bird); //prints true
console.log(beagle.constructor === Dog); //prints true
Tenga en cuenta que la propiedad del constructor es una referencia a la función del constructor que creó la instancia. La ventaja de la propiedad del constructor es que es posible verificar esta propiedad para saber qué tipo de objeto es. Aquí hay un ejemplo de cómo se podría usar:
function joinBirdFraternity(candidate) {
  if (candidate.constructor === Bird) {
    return true;
  } else {
    return false;
  }
}
Nota
Dado que la propiedad del constructor se puede sobrescribir (que se cubrirá en los siguientes dos desafíos), generalmente es mejor usar el método instanceof para verificar el tipo de un objeto.

Instructions

Escriba una función joinDogFraternity que tome un parámetro candidate y, utilizando la propiedad del constructor , devuelva true si el candidato es un Dog , de lo contrario, devuelva false .

Tests

tests:
  - text: <code>joinDogFraternity</code> debe definirse como una función.
    testString: 'assert(typeof(joinDogFraternity) === "function", "<code>joinDogFraternity</code> should be defined as a function.");'
  - text: <code>joinDogFraternity</code> debería devolver true si el <code>candidate</code> es una instancia de <code>Dog</code> .
    testString: 'assert(joinDogFraternity(new Dog("")) === true, "<code>joinDogFraternity</code> should return true if<code>candidate</code> is an instance of <code>Dog</code>.");'
  - text: <code>joinDogFraternity</code> debe usar la propiedad del <code>constructor</code> .
    testString: 'assert(/\.constructor/.test(code) && !/instanceof/.test(code), "<code>joinDogFraternity</code> should use the <code>constructor</code> property.");'

Challenge Seed

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

// Add your code below this line
function joinDogFraternity(candidate) {

}

Solution

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