/** * 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 单体模式
最新推荐文章于 2024-02-20 16:40:50 发布
本文深入探讨了单体模式的概念、实现方式及其在不同场景下的应用,包括简单单体模式、保护数据的闭包单体、惰性单体以及分支单体。详细解释了如何通过借用闭包创建单体,实现数据的封装与保护,并介绍了惰性单体的实现机制,同时分析了分支单体如何处理浏览器差异检测。
112

被折叠的 条评论
为什么被折叠?



