mirror of
https://github.com/freeCodeCamp/freeCodeCamp.git
synced 2026-05-13 16:04:36 -04:00
3.4 KiB
3.4 KiB
id, title, localeTitle, challengeType
| id | title | localeTitle | challengeType |
|---|---|---|---|
| 587d7db2367417b2b2512b89 | Use a Mixin to Add Common Behavior Between Unrelated Objects | Use un Mixin para agregar un comportamiento común entre objetos no relacionados | 1 |
Description
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.
let flyMixin = function(obj) {El
obj.fly = function() {
console.log("Flying, wooosh!");
}
};
flyMixin toma cualquier objeto y le da el método de fly .
let bird = {Aquí las
name: "Donald",
numLegs: 2
};
let plane = {
model: "777",
numPassengers: 524
};
flyMixin(bird);
flyMixin(plane);
bird y el plane pasan a flyMixin , que luego asigna la función de fly a cada objeto. Ahora el bird y el plane pueden volar:
bird.fly(); // prints "Flying, wooosh!"Observe cómo la
plane.fly(); // prints "Flying, wooosh!"
mixin permite que el mismo método de fly sea reutilizado por objetos no relacionados, bird y plane .
Instructions
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
let bird = {
name: "Donald",
numLegs: 2
};
let boat = {
name: "Warrior",
type: "race-boat"
};
function glideMixin (obj) {
obj.glide = () => 'Gliding!';
}
glideMixin(bird);
glideMixin(boat);