歪仔

导航

模块化编程

1.定义
define(factory(){
  // 模块代码
  // return something;
});
2.自调用匿名函数(使用闭包)
;(function (参数) {
  // 模块代码
  // return something;
})(参数);
也称为立即调用的函数表达 (Immediately-Invoked Function Expression, IIFE–读做“iffy”)。
3.模块的本质
在闭包中,可以定义私有变量和函数,外部无法访问它们,从而做到了私有成员的隐藏和隔离。而通过返回对象或函数,或是将某对象作为参数传入,在函数体内对该对象进行操作,就可以公开我们所希望对外暴露的公开的方法与数据。
4.参数的输入
考虑模块的独立性和封装,对其它对象的引用应该通过参数来引入。
不好的方式:模块里直接引用这些对象的名字,没有将这些对象作为参数来显式的引用。很可能出错。
5.模块输出(Module Export)
通过匿名函数的 return 语句来达成。
 
var MODULE = (function () {
       var my = {},
              privateVariable = 1;
 
       function privateMethod() {
              // ...
       }
 
       my.moduleProperty = 1;
       my.moduleMethod = function () {
              // ...
       };
 
       return my;
}());
   》》1输出简单的对象--对象直接量
      
var Module1 = (function () {
  var private_variable = 1;
  function private_method() { /*...*/ }
 
  var my = {
    property1: 1,
    property2: private_variable,
    method1: private_method,
    method2: function () {
        // ...
    }
  };
  return my;
}());
  》》2输出函数
 
var Cat = (function () {
  // 私有成员及代码 ...
 
  return function(name) {
    this.name = name;
    this.bark = function() { /*...*/ }
  };
}());
 
var tomcat = new Cat("Tom");
tomcat.bark();
 6.####Revealing Module Pattern####
这种模式要求在私有范围内中定义变量和函数,然后返回一个匿名对象,在该对象中指定要公开的成员。
 
var MODULE = (function () {
  // 私有变量及函数
  var x = 1;
  function f1() {}
  function f2() {}
 
  return {
    public_method1: f1,
    public_method2: f2
  };
}()); 
 
 7.
 
 

 

posted on 2016-08-05 16:17  歪仔  阅读(277)  评论(0编辑  收藏  举报