在 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>