js: 单例模式
来源:互联网 发布:淘宝上买steam游戏商家 编辑:程序博客网 时间:2024/05/20 06:05
**
单例模式
**
保证一个类仅有一个实例,并提供访问他的全局访问点。
用内部变量来标示当前是否已创建对象,是则返回已创建的对象,否则进行创建,并返回。
JavaScript 本身没有类,需要某个对象直接创建即可,这个对象就是单列模式的单个实例,而JavaScript模拟类的实现是为了能创建多个相同实例。再对这个模拟类实现单例是倒回本身特性。
1.单独实现为单例模式的类
// 单独实现为单例模式的类 var SingleOrigin = (function(win){ var instance = null; var SingleOrigin = function(){ if (instance) return instance; this.init(); instance = this; // return instance = this; } SingleOrigin.prototype.init = function(){ this.left = 0; this.top = 0; } return SingleOrigin; })(window); var a = new SingleOrigin(); var b = new SingleOrigin; console.log(a === b); // true
2.使用代理将 普通类 代理为 单例模式类(封装个新类)
// 使用代理将 普通类 代理为 单例模式类 var Origin0 = function(){ this.init(); } Origin0.prototype.init = function(){ this.left = 0; this.top = 0; } // 普通类创建实例 var aa2 = new Origin0; var bb2 = new Origin0; console.log(aa2 === bb2); // false // 代理为 ProxySingleOrigin var ProxySingleOrigin = (function(win){ var instance = null; return function(){ if(instance) return instance; instance = new Origin0; return instance; } })(window); var aa = new ProxySingleOrigin; var bb = new ProxySingleOrigin; console.log(aa === bb); // true
部分代码引用和修改:《JavaScript 设计模式与实践》by曾探,
阅读全文
0 0
- JS单例模式
- js单例模式
- js单例模式
- js单例模式
- JS单例模式
- js 单例模式
- js单例模式
- js单例模式
- js单例模式
- js-单例模式
- js 单例模式
- js单例模式
- 【JS】单例模式
- js: 单例模式
- js单例模式
- js实现单例模式
- js实现单例模式
- Node.js单例模式
- react系列(10)服务端渲染认识
- Thunderbolt on Linux
- Java线程的五种状态以及切换
- 工作日志:ButterKnife框架的理解与使用
- 关于线程相关的一些理解和常见面试题
- js: 单例模式
- 从0开始的WEB开发之路之SpringMVC篇——初识springMVC(1)
- 华为Easy-IP配置指南
- kaldi使用tri4b进行测试时的调参
- RK3399嵌入式开发板QT下wifi 移植方法
- LeetCode-3(非递归前中后序遍历)
- BigDecimal的定义和比较
- strStr II
- websocket断开重连解决方案,基于子慕大诗人博客修改 健壮强化版