好程序員教程分享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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章