JavaScript模块模式

模块模式,代码如下:

// 模块模式
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。

其实,模块模式是使用了闭包,通过返回含有属性引用的对象将函数传递到词法作用域之外。这就是闭包的强大之处。

猜你喜欢

转载自www.cnblogs.com/wljqds/p/11296550.html