freeCodeCamp/curriculum/challenges/spanish/02-javascript-algorithms-an.../object-oriented-programming/use-a-mixin-to-add-common-b...

3.3 KiB
Raw Blame History

id title challengeType videoUrl localeTitle
587d7db2367417b2b2512b89 Use a Mixin to Add Common Behavior Between Unrelated Objects 1 Use un Mixin para agregar un comportamiento común entre objetos no relacionados

Description

Como has visto, el comportamiento se comparte a través de la herencia. Sin embargo, hay casos en que la herencia no es la mejor solución. La herencia no funciona bien para objetos no relacionados como Bird y Airplane . Ambos pueden volar, pero un Bird no es un tipo de Airplane y viceversa. Para objetos no relacionados, es mejor usar mixins . Una mixin permite que otros objetos usen una colección de funciones.
vamos a flyMixin = function (obj) {
obj.fly = function () {
console.log ("Flying, wooosh!");
}
};
El flyMixin toma cualquier objeto y le da el método de fly .
dejar ave = {
nombre: "donald",
NumLegs: 2
};

dejar plano = {
modelo: "777",
NumPasajeros: 524
};

flyMixin (pájaro);
flyMixin (plano);
Aquí el bird y el plane pasan a flyMixin , que luego asigna la función de fly a cada objeto. Ahora tanto el bird como el plane pueden volar:
bird.fly (); // impresiones "Flying, wooosh!"
plane.fly (); // impresiones "Flying, wooosh!"
Observe cómo la mixin permite que el mismo método de fly sea reutilizado por objetos no relacionados, bird y plane .

Instructions

Crear un mixin llamado glideMixin que define un método llamado glide . Luego use el glideMixin para que tanto el bird como el boat puedan deslizarse.

Tests

tests:
  - text: Su código debe declarar una variable <code>glideMixin</code> que es una función.
    testString: 'assert(typeof glideMixin === "function", "Your code should declare a <code>glideMixin</code> variable that is a function.");'
  - text: Su código debe usar el <code>glideMixin</code> en el objeto <code>bird</code> para darle el método de <code>glide</code> .
    testString: 'assert(typeof bird.glide === "function", "Your code should use the <code>glideMixin</code> on the <code>bird</code> object to give it the <code>glide</code> method.");'
  - text: Su código debe usar el <code>glideMixin</code> en el objeto del <code>boat</code> para darle el método de <code>glide</code> .
    testString: 'assert(typeof boat.glide === "function", "Your code should use the <code>glideMixin</code> on the <code>boat</code> object to give it the <code>glide</code> method.");'

Challenge Seed

let bird = {
  name: "Donald",
  numLegs: 2
};

let boat = {
  name: "Warrior",
  type: "race-boat"
};

// Add your code below this line

Solution

// solution required