Bird y Dog del último desafío funcionaron bien. Sin embargo, tenga en cuenta que todas las Birds que se crean con el constructor Bird se denominan automáticamente Albert, son de color azul y tienen dos patas. ¿Y si quieres pájaros con diferentes valores de nombre y color? Es posible cambiar las propiedades de cada ave manualmente, pero eso sería mucho trabajo: dejar cisne = nuevo pájaro ();Supongamos que estaba escribiendo un programa para realizar un seguimiento de cientos o incluso miles de aves diferentes en un aviario. Tomaría mucho tiempo crear todas las aves, luego cambiar las propiedades a diferentes valores para cada una. Para crear más fácilmente diferentes objetos
swan.name = "Carlos";
swan.color = "blanco";
Bird , puede diseñar su constructor Bird para que acepte parámetros: función pájaro (nombre, color) {Luego pase los valores como argumentos para definir cada ave única en el constructor de
this.name = nombre;
this.color = color;
this.numLegs = 2;
}
Bird : let cardinal = new Bird("Bruce", "red"); Esto da una nueva instancia de Bird con las propiedades de nombre y color establecidas en Bruce y rojo, respectivamente. La propiedad numLegs todavía está establecida en 2. El cardinal tiene estas propiedades: cardinal.name // => BruceEl constructor es más flexible. Ahora es posible definir las propiedades de cada
cardinal.color // => rojo
cardinal.numLegs // => 2
Bird en el momento de su creación, que es una forma en que los constructores de JavaScript son tan útiles. Agrupan los objetos en función de las características y el comportamiento compartidos y definen un plan que automatiza su creación. Dog . Esta vez, numLegs para tomar el name y el color los parámetros, y numLegs que la propiedad numLegs fije en 4. Luego crea un nuevo Dog guardado en una variable terrier . Pásale dos cadenas como argumentos para las propiedades de name y color . Dog debe recibir un argumento para su name .
testString: 'assert((new Dog("Clifford")).name === "Clifford", "Dog should receive an argument for name.");'
- text: Dog debe recibir un argumento para el color .
testString: 'assert((new Dog("Clifford", "yellow")).color === "yellow", "Dog should receive an argument for color.");'
- text: Dog debe tener la propiedad numLegs establecida en 4.
testString: 'assert((new Dog("Clifford")).numLegs === 4, "Dog should have property numLegs set to 4.");'
- text: terrier debe ser creado usando el constructor Dog .
testString: 'assert(terrier instanceof Dog, "terrier should be created using the Dog constructor.");'
```