模块模式,代码如下:
// 模块模式
function CoolModule() {
var a = 'someone';
var b = new Array(1, 2, 3);
function doSomething() {
console.log(a);
}
function doAnother() {
console.log(b.join('-'));
}
return {
doSomething,
doAnother
}
}
var foo = CoolModule();
foo.doSomething(); // someone
foo.doAnother(); // 1-2-3
模块模式:对象返回的是对内部函数而不是内部变量的引用。模块模式让内部的变量是隐藏且隐私的。
可以把对象类型的返回值当做是这个模块的公共API。
其实,模块模式是使用了闭包,通过返回含有属性引用的对象将函数传递到词法作用域之外。这就是闭包的强大之处。
原文:https://www.cnblogs.com/wljqds/p/11296550.html