// 创建一个单例模式类
class Singleton {
constructor() {
if(!Singleton.instance) {
this.name = null
Singleton.instance = this
}
return Singleton.instance
}
setName(name) {
this.name = name
}
toString() {
console.log(`This is Singleton toString, the name is ${this.name}.`)
}
static getInstance() {
if (!this.instance) {
return this.instance = new Singleton()
}
return this.instance
}
}
let sing1 = Singleton.getInstance()
let sing2 = Singleton.getInstance()
let sing3 = new Singleton()
let sing4 = new Singleton()
// sing1 === sing2 true
// sing2 === sing3 true
// sing3 === sing4 true
使用es6 class 实现单例模式
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 关于ES5实现继承的方式,之前的一篇文章《JavaScript 面向对象的那些事儿》已经总结过,这里为了对比和ES...
- 引言 相信在实际的开发项目的过程中,很多时候有些对象的生命周期是伴随APP的全生命周期的,而且创建新的对象也消耗较...
- 通常情况下,我们写单例模式的时候无非就是三个步骤:构造器私有化,声明私有静态变量,提供静态获取实例的方法。简单说就...