freeCodeCamp/curriculum/challenges/arabic/02-javascript-algorithms-an.../object-oriented-programming/use-an-iife-to-create-a-mod...

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