单例模式的理解

在 JavaScript 里,单例作为一个命名空间提供者,从全局命名空间里提供一个唯一的访问点来访问该对象。学习好单例模式,在开发中将能很好的控制命名空间,避免变量污染等。

 1 <script type="text/javascript">
 2 //1.独立的对象 建2个 一个xiaowang 一个xiaoli
 3 //2.让xiaoli跟xiaowang通过门铃进行通信
 4 //3.先看一下xiaowang家有没有门 如果有门直接通过门铃通讯didi 如果没有先建门
 5 //4.两个单利之间开始通信
 6 
 7 //动态单例,需要的时候才会new
 8 var xiaowang = (function(argument){
 9     var xiaowangjia = function(message){
10         this.menling = message;
11     }
12     var men;
13     var info = {
14         sendMessage: function(message){
15             if(!men){
16                 men = new xiaowangjia(message);
17             };
18             return men;
19         }
20     };
21     return info;
22 })();
23 //静态单例,常驻内存
24 var xiaoli = {
25     callXiaowang: function(msg){
26         var _xw = xiaowang.sendMessage(msg);
27         alert(_xw.menling);
28         _xw = null; //等待垃圾回收,以免闭包造成内存泄漏
29     }
30 }
31 xiaoli.callXiaowang("didi");
32 </script>

 

posted on 2017-01-09 16:49  sunnie_c  阅读(120)  评论(0编辑  收藏  举报