详细介绍javascript中的单体模式singleton(全面)
来源:互联网 发布:python计算器源代码 编辑:程序博客网 时间:2024/05/23 12:54
一、单体模式描述
1、单体模式是javascript中最基本但又最有用的模式之一,他可能比其他任何模式都常用。
2、这种模式提供了一种将代码组织为一个逻辑单元的手段,这个逻辑单元中的代码可以通过单一的变量进行访问。通过确保单体对象只存在一份实例,你就可以确信自己的所有代码使用的都是同样的全局资源。
二、单体模式分类
1、简单单体
// 1、简单单体代码var singLeton = {name:'CHX',age:28,sayName:function () {alert('CMX');}}alert(singLeton.name);//CMX//补充:划分命名空间(区分代码)var CHX = {};CHX.singLeton = {name:'CHX',age:28,sayName:function () {alert('CMX');}}CHX.singLeton.sayName();//CMX
2、闭包单体
// 2、闭包单体 闭包的主要目的 保护数据var CHX = {};CHX.singLeton = (function(){//添加自己的私有成员var name = 'CHX';var age = 28;var sayName = function() {alert('CHX');}//把块级作用域里的执行结果赋值类我的单体对象return {name:name,age:age,sayName:sayName}})();CHX.singLeton.sayName();//CMX
3、惰性单体
// 3、惰性单体 和闭包单体有一些相似的地方var CHX = {}; //命名空间CHX.Base = (function(){//私有变量 控制返回的单体对象var uniqInstance; // undinfind// 需要一个构造器 init 初始化单体对象的方法function init() {//添加自己的私有成员var name = 'CHX';var age = 28;var sayName = function() {alert('CHX');}return {name:name,age:age,sayName:sayName};}return {getInstance:function() {if(!uniqInstance) { //实例不存在uniqInstance = init();}return uniqInstance;}}})();//CHX.Base.getInstance().sayName();alert('CHX')//console.log(CHX.Base.getInstance().name);CMX
4、分支单体
// 4、分支单体 主要解决浏览器兼容问题(判断程序的分支,浏览器差异的检测)var CHX = {};var def = false; //到时候动态判断赋值CHX.More = (function(){ var obj1 = {//火狐浏览器 内部的一些配置attr1:'FF属性1'};var obj2 = {//IE浏览器 内部的一些配置attr1:'IE属性1'};return (def)?obj1:obj2;})();alert(CHX.More.attr1);//IE属性1
0 0
- 详细介绍javascript中的单体模式singleton(全面)
- javascript设计模式-单体singleton模式(2)
- javascript 单例/单体模式(Singleton)
- 单体模式(Singleton)
- 单体模式 Singleton
- java singleton 单体模式
- 单体模式Singleton
- 单体模式singleton
- 单体模式Singleton
- C#.net Singleton 单体模式
- 单例/单体模式(Singleton)
- 单例/单体模式(Singleton)
- 单例/单体模式(Singleton)
- 单例/单体模式(Singleton)
- 单例/单体模式(Singleton)
- 单例/单体模式(Singleton)
- Javascript单体模式
- javascript 单体模式
- android 根据子view动态设置listview的高 有转载内容,已标明原地址
- 第九章 React的Ajax
- android canvas drawText()文字居中
- 离散基础 (11). 二项式除法处理技巧
- Map集合中value()方法与keySet()、entrySet()区别(转载)
- 详细介绍javascript中的单体模式singleton(全面)
- 山东省第三届ACM大学生程序设计竞赛 n a^o7 !
- 汇编中各寄存器的作用
- Appium基于安卓的各种FindElement的控件定位
- C++(3)/面对对象初探&构造函数析构函数
- 加盐hash保存密码的正确方式
- 矩阵——poj3233Matrix Power Series
- 双指针 532. K-diff Pairs in an Array
- 本机上访问tomcat项目可以,局域网内的其他机器访问不到项目