javaScript设计模式与开发实践-单例模式

来源:互联网 发布:苜蓿地 知乎 编辑:程序博客网 时间:2024/06/17 23:52

单例模式

声明:这个系列是阅读《JavaScript设计模式与开发实践》 —-曾探@著一书的读书笔记

一:单例模式定义

保证一个类仅有一个实例,并提供一个访问它的全局访问点,单利模式的核心是确保只有一个实例,并提供全局访问

  1、实现单列模式

 <script>    var singleton = function(name){    this.name=name;    }    singleton.prototype.getName=function(){    alert(this.name);    }    singleton.getInStance=(function(){    var instance=null;    return function(name){    if(!instance){    instance=new singleton(name);    }    return instance;    }    })();    var a=singleton.getInStance('SSS');    var b=singleton.getInStance('BB');    alert(a===b);  //true    </script>
二:惰性单列

1、惰性单列是指在需要的时候才创建对象实例。

singleton.getInStance=(function(){    var instance=null;    return function(name){    if(!instance){    instance=new singleton(name);    }    return instance;    }    })();
2、创建一个登陆浮窗
<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>单例模式</title>    <style>        #red{border-left:50px solid red;}          #blue{border-left:50px solid blue;}          #green{border-left:50px solid green;}    </style></head><body>    <button id="loginBtn">登陆</button>    <script>    var createLoginLayer=function(){    var div=document.createElement('div');    div.innerHTML='我是登陆浮窗';    div.style.display = 'none';    document.body.appendChild(div);    return div;    };    document.getElementById("loginBtn").onclick=function(){    var loginlayer=createLoginLayer();    loginlayer.style.display='block';    }    </script></body></html>



阅读全文
0 0
原创粉丝点击