// 创建一个单例模式类
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的全生命周期的,而且创建新的对象也消耗较...
- 通常情况下,我们写单例模式的时候无非就是三个步骤:构造器私有化,声明私有静态变量,提供静态获取实例的方法。简单说就...