immediately invoked function expression
( IIFE
)通常用于将相关功能分组到单个对象或module
。例如,早期的挑战定义了两个mixins: function glideMixin(obj){我们可以将这些
obj.glide = function(){
console.log(“在水面上滑行”);
};
}
function flyMixin(obj){
obj.fly = function(){
console.log(“Flying,wooosh!”);
};
}
mixins
分组到一个模块中,如下所示: 让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();
funModule
的module
来包装两个mixins
isCuteMixin
和singMixin
。 funModule
应该返回一个对象。 funModule
并返回一个对象。
testString: assert(typeof funModule === "object");
- text: funModule.isCuteMixin
应该访问一个函数。
testString: assert(typeof funModule.isCuteMixin === "function");
- text: funModule.singMixin
应该访问一个函数。
testString: assert(typeof funModule.singMixin === "function");
```