/** * Created by lenovo on 2015/10/3. */ /* * 单体模式 *划分命名空间 * * 1简单单体模式 * */ var singleton={ attr1:true, attr2:10, method1:function(){ } }; //2借用闭包创建单体 主要目的:保护数据 BHX.Singleton=(function(){ //添加自己的私有成员 var a1=true; var a2=10; var f1=function(){ } //把块级作用域里的执行结果赋值给单体对象 return { attr1:a1, attr2:a2, method1:function(){ } } })(); //3惰性单体 var Ext={}; Ext.base=(function(){ //私有变量 控制返回的单体对象 var uniqInstance; //私有变量成员 function init() { var a1 = 10; var a2 = true; var fn1 = function () { alert('fn1'); } return { attr1:a1, attr2:a2, method1:function(){ return fn1(); } } } return{ getInstance:function(){ if(!uniqInstance){ //如果不存在 创建单体实例 uniqInstance=init(); } return uniqInstance; } } })(); //4 分支单体(判断程序的分支)浏览器差异检测 var Ext={}; var def=true; Ext.More=(function(){ var objA={ attr1:'firefox attr1', attr2:'firefox attr2' }; var objB={ attr1:'chrome attr1', attr2:'chrome attr2' }; return (def)?objA:objB; })()
javascript 单体模式
最新推荐文章于 2016-06-08 11:02:00 发布