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 ();
module
с именем funModule
, чтобы обернуть два mixins
isCuteMixin
и singMixin
. funModule
должен возвращать объект. funModule
должен быть определен и возвращать объект.
testString: 'assert(typeof funModule === "object", "funModule
should be defined and return an object.");'
- text: funModule.isCuteMixin
должен получить доступ к функции.
testString: 'assert(typeof funModule.isCuteMixin === "function", "funModule.isCuteMixin
should access a function.");'
- text: funModule.singMixin
должен получить доступ к функции.
testString: 'assert(typeof funModule.singMixin === "function", "funModule.singMixin
should access a function.");'
```