3.0 KiB
3.0 KiB
id | title | challengeType | videoUrl | localeTitle |
---|---|---|---|---|
587d7db2367417b2b2512b8c | Use an IIFE to Create a Module | 1 | Utilice un IIFE para crear un módulo |
Description
immediately invoked function expression
( IIFE
) se usa a menudo para agrupar la funcionalidad relacionada en un solo objeto o module
. Por ejemplo, un desafío anterior definió dos mixins: función glideMixin (obj) {Podemos agrupar estos
obj.glide = function () {
console.log ("Deslizamiento en el agua");
};
}
función flyMixin (obj) {
obj.fly = function () {
console.log ("Flying, wooosh!");
};
}
mixins
en un módulo de la siguiente manera: deja motionModule = (function () {Tenga en cuenta que tiene una
regreso {
glideMixin: function (obj) {
obj.glide = function () {
console.log ("Deslizamiento en el agua");
};
}
flyMixin: function (obj) {
obj.fly = function () {
console.log ("Flying, wooosh!");
};
}
}
}) (); // Los dos paréntesis provocan que la función se invoque inmediatamente.
immediately invoked function expression
( IIFE
) que devuelve un objeto motionModule
. Este objeto devuelto contiene todos los comportamientos de mixin
como propiedades del objeto. La ventaja del patrón del module
es que todos los comportamientos de movimiento se pueden empaquetar en un solo objeto que luego pueden ser utilizados por otras partes de su código. Aquí hay un ejemplo usándolo: motionModule.glideMixin (pato);
duck.glide ();
Instructions
module
llamado funModule
para envolver los dos mixins
isCuteMixin
y singMixin
. funModule
debería devolver un objeto. Tests
tests:
- text: <code>funModule</code> debe definirse y devolver un objeto.
testString: 'assert(typeof funModule === "object", "<code>funModule</code> should be defined and return an object.");'
- text: <code>funModule.isCuteMixin</code> debe acceder a una función.
testString: 'assert(typeof funModule.isCuteMixin === "function", "<code>funModule.isCuteMixin</code> should access a function.");'
- text: <code>funModule.singMixin</code> debe acceder a una función.
testString: 'assert(typeof funModule.singMixin === "function", "<code>funModule.singMixin</code> should access a function.");'
Challenge Seed
let isCuteMixin = function(obj) {
obj.isCute = function() {
return true;
};
};
let singMixin = function(obj) {
obj.sing = function() {
console.log("Singing to an awesome tune");
};
};
Solution
// solution required