3.5 KiB
3.5 KiB
id | title | challengeType | videoUrl | localeTitle |
---|---|---|---|---|
587d7db2367417b2b2512b8c | Use an IIFE to Create a Module | 1 | استخدم IIFE لإنشاء وحدة نمطية |
Description
immediately invoked function expression
IIFE
immediately invoked function expression
( IIFE
) لتجميع الوظائف ذات الصلة في كائن واحد أو module
واحدة. على سبيل المثال ، حدد تحدٍ سابق اثنين من المزيج: وظيفة glideMixin (obj) {يمكننا تجميع هذه
obj.glide = function () {
console.log ("الانزلاق على الماء") ؛
}؛
}
وظيفة flyMixin (obj) {
obj.fly = function () {
console.log ("الطائر ، wooosh!") ؛
}؛
}
mixins
في وحدة نمطية على النحو التالي: let motionModule = (function () {لاحظ أن لديك
إرجاع {
glideMixin: function (obj) {
obj.glide = function () {
console.log ("الانزلاق على الماء") ؛
}؛
}،
flyMixin: وظيفة (obj) {
obj.fly = function () {
console.log ("الطائر ، wooosh!") ؛
}؛
}
}
}) ()؛ // يتسبب هذان القوسان في استدعاء الدالة على الفور
immediately invoked function expression
( IIFE
) تقوم بإرجاع كائن motionModule
. يحتوي هذا الكائن الذي تم إرجاعه على كافة سلوكيات mixin
كخصائص للكائن. وتتمثل ميزة نمط module
في إمكانية تجميع كل سلوكيات الحركة في كائن واحد يمكن استخدامه بعد ذلك بواسطة أجزاء أخرى من شفرتك. هنا مثال على ذلك استخدامه: motionModule.glideMixin (بطة)؛
duck.glide ()؛
Instructions
module
اسمه funModule
التفاف اثنين من mixins
isCuteMixin
و singMixin
. يجب أن ترجع funModule
كائن. Tests
tests:
- text: يجب تعريف <code>funModule</code> وإرجاع كائن.
testString: 'assert(typeof funModule === "object", "<code>funModule</code> should be defined and return an object.");'
- text: <code>funModule.isCuteMixin</code> يجب الوصول إلى وظيفة.
testString: 'assert(typeof funModule.isCuteMixin === "function", "<code>funModule.isCuteMixin</code> should access a function.");'
- text: <code>funModule.singMixin</code> يجب الوصول إلى وظيفة.
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