好程序员教程分享Javascript设计模式

  好程序员教程分享Javascript设计模式
方法一 对象字面量表示法
  在对象字面量表示法中,一个对象被描述为一组包含在大括号中,以逗号分隔的 name/value 对。对象内的名称可以是字符串或标识符,后面跟着一个冒号。对象中最后一个 name/value 对不加逗号,否则会出错。

  /**
1.

  * 使用字面量表示法定义模块


2.

  */


3.

  var myModule = {


4.

  myProperty: "someValue",


5.

  myConfig: {


6.

  useCaching: true,


7.

  language: "en"


8.

  },


9.

  myMethod: function () {


10.

  console.log("the first method");


11.

  },


12.

  myMethod2: function () {


13.

  console.log("the second method");


14.

  },


15.

  };

  console.log(myModule.myProperty); // someValue
1.

  console.log(myModule.myConfig); // {useCaching: true, language: 'en'}


2.

  console.log(myModule.myConfig.useCaching); // true


3.

  myModule.myMethod(); // the first method


4.

  myModule.myMethod2(); // the second method

  方法二 Module模式
  Module模式使用闭包封装“私有”状态和组织。它提供了一种包装混合公有/私有方法和变量的方式
  ,防止其污染全局命名空间,防止其泄露到全局作用域。通过该模式,只需返回一个公有API,而其他的一切则都维持在私有闭包里。
  /**
1.

  * Module方法定义


2.

  */


3.

  var myNameSpace = (function () {


4.

  // 私有变量


5.

  var myPrivateVar = 0;


6.

  // 私有函数


7.

  var myPrivateMethod = function (foo) {


8.

  console.log(foo);


9.

  };


10.

  // 公有API


11.

  return {


12.

  // 公有变量


13.

  myPublicVar: "foo",


14.

  // 公有方法


15.

  myPublicFunction: function (bar) {


16.

  // 操作私有变量


17.

  myPrivateVar ++;


18.

  // 调用私有函数


19.

  myPrivateMethod(bar);


20.

  },


21.

  // 公有方法二


22.

  myPublicFunction2: function () {


23.

  console.log("success");


24.

  }


25.

  };


26.

  }) ();

  console.log(myNameSpace.myPrivateVar); // undefined
1.
2.

  console.log(myNameSpace.myPrivateVar); // undefined


3.

  console.log(myNameSpace.myPublicVar); // foo


4.

  console.log(myNameSpace.myPublicFunction); // Function


5.

  myNameSpace.myPublicFunction2(); // success


6.

  myNameSpace.myPublicFunction("i am first"); // i am first

上一篇:袋鼠云助力福州市行政(市民)服务中心建设数据可视化大屏展映第二届数字中国建设峰会


下一篇:好程序员技术文档HTML5开发中的javascript闭包