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