详细介绍javascript中的单体模式singleton(全面)
一、单体模式描述
二、单体模式分类
// 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、闭包单体 闭包的主要目的 保护数据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、惰性单体 和闭包单体有一些相似的地方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、分支单体 主要解决浏览器兼容问题(判断程序的分支,浏览器差异的检测)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
详细介绍javascript中的单体模式singleton(全面)相关推荐
- 单例/单体模式(Singleton)
单例/单体模式(Singleton) 首先,单例模式是对象的创建模式之一,此外还包括工厂模式.单例模式的三个特点: 1,该类只有一个实例 2,该类自行创建该实例(在该类内部创建自身的实例对象) 3,向 ...
- [转]详细介绍java中的数据结构
详细介绍java中的数据结构 本文介绍的是java中的数据结构,本文试图通过简单的描述,向读者阐述各个类的作用以及如何正确使用这些类.一起来看本文吧! 也许你已经熟练使用了java.util包里面的各 ...
- python or的用法_详细介绍Python中and和or实际用法
and 和 or 的特殊性质 在Python 中,and 和 or 执行布尔逻辑演算,但是它们并不返回布尔值:而是,返回它们实际进行比较的值之一.下面来看一下实例.>>> 'a' a ...
- 详细介绍MySQL中的数据类型
MySQL数据类型精讲 1.MySQL中的数据类型 常见数据类型的属性,如下: 2.整数类型 2.1 类型介绍 整数类型一共有 5 种,包括 TINYINT.SMALLINT.MEDIUMINT.IN ...
- 39 JavaScript中的严格模式
技术交流QQ群:1027579432,欢迎你的加入! 欢迎关注我的微信公众号:CurryCoder的程序人生 1.什么是严格模式(strict model) JavaScript除了提供正常模式外,还 ...
- 单体模式singleton
在c++实现单体模式和c#,java有些不同 .h class Param { public:static Param& GetIntance(){return m_param;}static ...
- 【转载】 详细介绍Flex中操作XML
一 在介绍Flex中操作XML之前,首先简单介绍下XML中的基本术语. 元素:XML中拥有开始标签和结束标签的这一块称为"元素" 节点:把XML元素与文本结合起来统称为节 ...
- JavaScript中的严格模式
严格模式 严格模式是JavaScript中的一种限制性更强的变种方式 严格模式可以跟非严格模式共存 目的 首先,在严格模式中将JavaScript陷阱直接报错 其次,修正了一些引擎难以优化的错误:同样 ...
- php中sisson用法,详细介绍php中session的用法
PHP中的session默认情况下是使用客户端的Cookie.当客户端的Cookie被禁用时,会自动通过Query_String来传递. Php处理会话的函数一共有11个,我们详细介绍一下将要用到几个 ...
最新文章
- On/Off FlipSwitch 按钮
- emwin读取sd图片_262.3MB/S读取速率,雷克沙1667X这回谁还敢吐槽
- mysql修改配置文件内存后无法启动_记一次Oracle实例在修改内存大小后无法启动的惊悚经历...
- 解决Ubuntu16.04 fatal error: json/json.h: No such file or directory
- DEDE文章列表加上序号效果
- Watch online
- 【51Nod - 1117 】聪明的木匠 (贪心,哈夫曼树,时光倒流)
- java对日期Date类进行加减运算、年份加减,月份加减
- Android DDMS的打开以及查看手机页面布局层次
- mysql point WKB格式 php 解析 unpack
- MybatisPlus报错: org.apache.velocity.context.Context(已解决)
- 一个有趣的说法:多层神经网络的致命问题与过拟合
- MyBatis(二)------使用JDBC编程问题总结
- IT6613,是一款BT1120 TO HDMI 单转芯片
- ae合成设置快捷键_AE脚本使用快捷键控制关键帧操作 Keyboard v1.2.2【资源分享1449】...
- Latex表格排版(三个表格并列、单元格内容自动换行)
- JS 0.1+0.2的理解
- Laravel项目+Google验证器
- wifi动不动就断开_解决iPad连接wifi网络经常中断(转)
- 九章算术 九:《勾股》
热门文章
- kss admin index.php,XCTF Final 2018 Web Writeup (Bestphp与PUBG详解)
- qrcode二维码实现
- ptable java_ttable怎么在java中编写
- 无线路由器设置成无线AP,解决家里设备不在一个网段的尴尬
- 倩女幽魂手游服务器维护多久,倩女幽魂手游11月22日在线维护公告
- 程序员漫画集连载[1]
- kafka扩容数据自动重分配脚本
- Hanselminutes播客242-与Pete Brown的远程工作者的困境
- R语言使用vtreat包的designTreatmentsC函数构建数据处理计划(treatment plan)、使用vtreat包进行数据准备
- android studio天气预报