freeCodeCamp/curriculum/challenges/spanish/02-javascript-algorithms-an.../object-oriented-programming/extend-constructors-to-rece...

3.8 KiB

id title challengeType videoUrl localeTitle
587d7dae367417b2b2512b79 Extend Constructors to Receive Arguments 1 Extender constructores para recibir argumentos

Description

Los constructores de 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 ();
swan.name = "Carlos";
swan.color = "blanco";
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 Bird , puede diseñar su constructor Bird para que acepte parámetros:
función pájaro (nombre, color) {
this.name = nombre;
this.color = color;
this.numLegs = 2;
}
Luego pase los valores como argumentos para definir cada ave única en el constructor de 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 // => Bruce
cardinal.color // => rojo
cardinal.numLegs // => 2
El constructor es más flexible. Ahora es posible definir las propiedades de cada 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.

Instructions

Crea otro constructor de 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 .

Tests

tests:
  - text: <code>Dog</code> debe recibir un argumento para su <code>name</code> .
    testString: 'assert((new Dog("Clifford")).name === "Clifford", "<code>Dog</code> should receive an argument for <code>name</code>.");'
  - text: <code>Dog</code> debe recibir un argumento para el <code>color</code> .
    testString: 'assert((new Dog("Clifford", "yellow")).color === "yellow", "<code>Dog</code> should receive an argument for <code>color</code>.");'
  - text: <code>Dog</code> debe tener la propiedad <code>numLegs</code> establecida en 4.
    testString: 'assert((new Dog("Clifford")).numLegs === 4, "<code>Dog</code> should have property <code>numLegs</code> set to 4.");'
  - text: <code>terrier</code> debe ser creado usando el constructor <code>Dog</code> .
    testString: 'assert(terrier instanceof Dog, "<code>terrier</code> should be created using the <code>Dog</code> constructor.");'

Challenge Seed

function Dog() {

}

Solution

// solution required