解决了基础版类不够 透明 的问题,可以使用 new 关键字来初始化实例,但同时也存在着新的问题
- 判断 Single.instance 类型来返回,可能得不到预期结果
- 耦合度过高
这种方式也可以通过 ES6 方式来实现
// 将 constructor 改写为单例模式的构造器
class Singleton {
constructor(name) {
this.name = name
if(!Singleton.instance) {
Singleton.instance = this
}
return Singleton.instance
}
}