首页 > 编程 > JavaScript > 正文

javascript单体

2019-11-08 03:28:05
字体:
来源:转载
供稿:网友

单体模式(singleton)类似 java 的单例 通常结合闭包(保护数据)来使用

简单单体

var Singleton = { attr1: true , method1 : function(){ alert('我是方法1'); }};

命名空间

var ext = {};ext.Singleton = { attr1: true , method1 : function(){ alert('我是方法1'); } };ext.Singleton.method1();

惰性单体

var Ext = {} ;Ext.Base = (function(){ // 控制返回的单体对象 var uniqInstance ; // 初始化单体对象 function init(){ var a1 = 10 ; var fn1 = function(){alert('fn1')}; return { attr1 : a1 , method1 : function(){ return fn1(); } }; } return { getInstance : function(){ if(!uniqInstance){ uniqInstance = init(); } return uniqInstance ; } };})();alert(Ext.Base.getInstance().attr1);Ext.Base.getInstance().method1();

分支单体

例如:判断程序的分支 <浏览器差异的检测>

var Ext = {} ;var def = false ;Ext.More = (function(){ var objA = { // 火狐浏览器 内部的一些配置 attr1:'FF属性1' }; var objB = { // IE浏览器 内部的一些配置 attr1:'IE属性1' }; return (def) ? objA : objB;})();alert(Ext.More.attr1);
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表