当前位置: 首页 > Web前端 > HTML5

优秀程序员教程分享Javascript设计模式

时间:2023-04-05 11:15:53 HTML5

优秀程序员教程分享Javascript设计模式方法一个对象字面量表示法  在对象字面量表示法中,对象被描述为用大括号括起来的一组,以逗号分隔的名称/值对。对象中的名称可以是字符串或后跟冒号的标识符。不要在对象的最后一个名称/值对中添加逗号,否则会出错。  /**1.

  *使用文字符号定义模块

2.

  */

3.

  varmyModule={

4.

  myProperty:"someValue",

5.

  myConfig:{

6.

  useCaching:true,

7.

  language:"en"

8.

  },

9.

  myMethod:函数(){

10.

  console.log("第一种方法");

11.

  },

12.

  myMethod2:function(){

13.

  console.log("第二种方法");

14.

  },

15.

  };

  console.log(myModule.myProperty);//someValue1.

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

2.

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

3.

  myModule.myMethod();//第一个方法

4.

  myModule.myMethod2();//第二种方法

  方法二Module模式  Module模式使用闭包来封装“私有”状态和组织。它提供了一种包装混合公共/私有方法和变量的方法  ,防止它们污染全局命名空间并泄漏到全局范围内。使用这种模式,只返回一个公共API,其他一切都在私有闭包中维护。  /**1.

  *模块方法定义

2.

  */

3.

  varmyNameSpace=(function(){

4.

  //私有变量

5.

  varmyPrivateVar=0;

6.

  //私有函数

7.

  varmyPrivateMethod=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("成功");

24.

  }

25.

  };

26.

  })();

  console.log(myNameSpace.myPrivateVar);//undefined1.2.

  console.log(myNameSpace.myPrivateVar);//未定义

3.

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

4.

  console.log(myNameSpace.myPublicFunction);//函数

5.

  myNameSpace.myPublicFunction2();//成功

6.

  myNameSpace.myPublicFunction("我是第一个");//我是第一个