2.8 KiB
2.8 KiB
id | title | challengeType | videoUrl | localeTitle |
---|---|---|---|---|
587d7daf367417b2b2512b7e | Understand the Constructor Property | 1 | Entender la propiedad del constructor |
Description
constructor
especial ubicada en las instancias de objeto duck
y beagle
que se crearon en los desafíos anteriores: dejar pato = nuevo pájaro ();Tenga en cuenta que la propiedad del
dejar beagle = nuevo perro ();
console.log (duck.constructor === Bird); // imprime verdad
console.log (beagle.constructor === Dog); // imprime verdad
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 averiguar qué tipo de objeto es. Aquí hay un ejemplo de cómo se podría usar esto: función joinBirdFraternity (candidato) {Nota
if (candidato.constructor === pájaro) {
devuelve verdadero
} else {
falso retorno;
}
}
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
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
// solution required