js设计模式之单例模式实例
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js设计模式之单例模式实例相关的知识,希望对你有一定的参考价值。
参考技术A 1、什么是单例模式?保证一个类只有一个实例, 并提供一个访问它的全局访问点。
2、如何实现一个单例模式
实现一个简单的单例模式:
创建一个类,类中有一个方法能够创建该类的实例对象,还有一个标记,记录是否创建过实例对象。创建过则直接用实例对象的引用。否则再次创建
3、什么情况可以使用单例模式(有什么用处)
(1)缓存数据(点击触发获取实验字段时)
(2)获取实例值不确定使用位置获取实例时是否已经有实例。每次调用都走一遍内部逻辑获取实例
使用场景:
Rn
h5页面中同一个路由下写在最上层时
每一个import进来的组件其实都属于一个单例模式
将变量缓存再windows上也是一个单例模式、但windows随意挂载变量的话后续不好维护
JS 设计模式之单例模式
?一、概念:
一个类
仅有一个实例
提供一个访问它的全局访问点
?二、实现:
class SimpleOne {
constructor (name) {
this.name = name;
}
getName (propsName) {
this.name = propsName;
return typeof this.name;
}
}
const a = new SimpleOne('a').getName();
const b = new SimpleOne('b').getName();
a === b // true
?三、JavaScript单例模式
????在我们的开发中,很多同学可能并不知道单例到底是什么,应该如何使用单例,但是他们所写的代码却刚好满足了单例模式的要求。
????如要实现一个登陆弹窗,不管那个页面或者在页面的那个地方单击登陆按钮,都会弹出登录窗。一些同学就会写一个全局的对象来实现登陆窗口功能,是的,这样的确可以实现所要求的登陆效果,也符合单例模式的要求,但是这种实现其实是一个巧合,或者一个美丽的错误。
????由于全局对象,或者说全局变量正好符合单例的能够全局访问,而且是唯一的。但是我们都知道,全局变量是可以被覆盖的,特别是对于初级开发人员来说,刚开始不管定义什么基本都是全局的,这样的好处是方便访问,坏处是一不留意就会引起冲突,特别是在做一个团队合作的大项目时,所以成熟的有经验的开发人员尽量减少全局的声明,而在开发中我们避免全局变量污染的通常做法如下:
- 全局命名空间
- 使用闭包
以上是关于js设计模式之单例模式实例的主要内容,如果未能解决你的问题,请参考以下文章