JavaScript学习之单体模式
来源:互联网 发布:红楼梦鉴赏知乎 编辑:程序博客网 时间:2024/05/16 18:23
单体模式是JavaScript中最常见的设计模式,它将代码块划分到不同的逻辑单元中,分开在不同的命名空间中,以防止调用方法冲突,单体模式只有一个实例。
简单单体
// 简单单体var Singleton = {name:'fxy',age:'10',getName:function(){return this.name;},getAge:function(){return this.age;}}alert(Singleton.getName())var FXY = {};FXY.Singleton = {name: true , age: 10 ,getName : function(){alert('fxy');},getAge : function(){alert('my age 3');}};FXY.Singleton.getName();
//闭包单体 保护数据FXY = {}FXY.Singleton = (function(){var name = 'fff';var age = 10;var getName = function(){return this.name;};var getAge = function(){return this.age;};return {name:name,age:age,getName:getName,getAge:getAge}})();alert(FXY.Singleton.name);alert(FXY.Singleton.getName());
//<span style="font-family: Arial, Helvetica, sans-serif;"><span>惰性单体</span></span>
<span style="white-space:pre"></span>FXY = {}FXY.Singleton = (function(){var lazy = undefined;function init(){var name = 'fff';var age = 10;var getName = function(){return this.name;};var getAge = function(){return this.age;};return {name:name,age:age,getName:getName,getAge:getAge}}return {getInstant:function(){if(!lazy){lazy = init();}return lazy;}}})();alert(FXY.Singleton);//singleton 对象,中包含getInstantalert(FXY.Singleton.getInstant().getName());//需要时初始化对象,调用其中方法
// 分支单体 (判断程序的分支 <浏览器差异的检测>)var Ext = {} ;var def = false ;Ext.More = (function(){var objA = {// 火狐浏览器 内部的一些配置attr1:'FF属性1'// 属性1 // 属性2 // 方法1 // 方法2} ;var objB = {// IE浏览器 内部的一些配置attr1:'IE属性1'// 属性1 // 属性2 // 方法1 // 方法2} ;return (def) ?objA:objB;})();alert(Ext.More.attr1);
以上参考尚学堂bhx老师的视频编写
0 0
- JavaScript学习之单体模式
- JavaScript设计模式学习笔记:单体模式
- javascript设计模式之单体模式
- ACE学习之单体模式(Singleton)
- Javascript单体模式
- javascript 单体模式
- JavaScript 设计模式之----单体(单例)模式
- JavaScript 设计模式之----单体(单例)模式
- 单体模式学习
- JavaScript设计模式 --- 单体模式
- javascript设计模式 单体模式
- javascript 设计模式-单体模式
- Javascript四种单体模式
- 设计模式之单体模式
- C++单体模式学习草稿
- javascript设计模式读书笔记(1)--单体模式
- javascript设计模式-单体singleton模式(2)
- javascript 单例/单体模式(Singleton)
- IBATIS学习中需要注意的问题
- Linux常用命令(三)文件搜索命令
- 关于Nginx+tomcat集群配置
- RS232标准中的RTS与CTS
- js+java 转码
- JavaScript学习之单体模式
- Lucene添加删除索引(增量索引)
- js小功能
- 网站首页过长图片又多怎么优化
- 超轻量!安卓实现多item抽屉效果动画
- javascript处理图像(预加载处理图像)
- C#中初始化窗口或欢迎窗口实现
- Linux上性能异常定位以及性能监控
- easyui tab 加载iframe 高度问题(解决iframe右侧总出两个滚条方法)