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

3.7 KiB
Raw Blame History

id title challengeType videoUrl localeTitle
587d7db2367417b2b2512b8c Use an IIFE to Create a Module 1 Использование модуля IIFE для создания модуля

Description

IIFE immediately invoked function expression ( IIFE ) часто используется для группировки связанных функций в один объект или module . Например, более ранняя задача определила два микшина:
функция glideMixin (obj) {
obj.glide = function () {
console.log («Скольжение по воде»);
};
}
функция flyMixin (obj) {
obj.fly = function () {
console.log («Flying, wooosh!»);
};
}
Мы можем сгруппировать эти mixins в модуль следующим образом:
let motionModule = (function () {
вернуть {
glideMixin: function (obj) {
obj.glide = function () {
console.log («Скольжение по воде»);
};
},
flyMixin: function (obj) {
obj.fly = function () {
console.log («Flying, 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