zoukankan      html  css  js  c++  java
  • 【javascript设计模式】构造器模式、模块模式、单例模式

    构造器模式(Constructor)

    构造器模式是学习js最早接触的一种,实现主要如下:

    1 function myObject(name){
    2   this.name = name;    
    3 }
    4 
    5 myObect.propotype = function sayName(){
    6   alert(this.name);  
    7 }

    使用的时候需要new一个对象。

    1 var myObj = new myObject('hello');
    2 myObj.sayName();

    模块模式(Module)

    模块模式主要用匿名函数、闭包形成一个可以拥有私有变量的环境,暴露接口给外部。传说中的模块化。

     1 var myObject = (function($){
     2     var myName = ''; //私有变量
     3     var sayName = function(){
     4         alert(myName);
     5     };
     6     return{
     7         setName : function(name){
     8              myName = name;
     9         },
    10         sayName : sayName
    11     }
    12 })(jQuery);

    使用的时候拿来模块直接用就行了

    1 myObject.setName('hello');
    2 myObject.sayName();

    单例模式(Singleton)

    单例模式可保证类只有一个实例,对象字面量就是单例模式的一种实现,另外也有。

     1 var myObject = (function(){
     2     var instance; //实例持有者
     3     function init( name ){
     4         var myname = name;
     5         var sayName = function(){
     6             alert(myname);
     7         };
     8         return {
     9             sayName : sayName
    10         };
    11     };
    12     return {
    13       getInstance : function(name){
            return instance || instance = init(name); 18     } 19 } 20 })(jQuery);

    调用的时候

    1 var instan = myObject.getInstance('hello');
    2 instan.sayName();
  • 相关阅读:
    Django models中的null和blank的区别
    3次登陆锁定与backend增删改查
    Python全栈考试(一)
    python第一天几个小游戏
    linux开发脚本自动部署及监控
    Linux awk&shell script
    linux正则表达式grep&sed
    linux网路IP.设定主机名.ssh .bash命令&通配符
    Linux:nginx(web服务),nfs服务+反向代理+负载均衡
    Linux内存dd,rpm,yum,软件安装
  • 原文地址:https://www.cnblogs.com/it-snail/p/3797124.html
Copyright © 2011-2022 走看看