1.使用ES6的类的方法创建单例模式
class Singleton{
constructor(){
if (!Singleton.instance) {
this.name="zhangsan;
Singleton.instance = this;
}
return Singleton.instance;
}
}
由于构造函数Singleton也是对象,所以我们可以将实例的引用记录在Singleton的一个属性(instance)上,当该属性为空时创建实例,否则返回Singleton上记录的实例。
2.使用闭包创建单例模式
const Singleton=(function(){
let instance;
function init(){
this.name="zhangsan";
}
return function(name){
if(!instance){
instance=new init();
}
return instance;
};
})();
3.使用instance获取单例
class Singleton{
constructor(){
this.name="zhangsan";
}
static getInstance(){
if(!Singleton.instance){
Singleton.instance=new Singleton();
}
return Singleton.instance();
}
}