# Javascript单例模式
单例模式:保证⼀个类仅有⼀个实例,并提供⼀个访问它的全局访问点。实现的⽅法为先判断实例存在与否,如果存在则直接返回,如果不存在就创建了再返回,这就确保了⼀个类只有⼀个实例对象。
# 实现
let getSingle = function(fn) { // 闭包实现 result不会被销毁
let result;
return function() {
return result || (result = fn.apply(this, arguments));
}
}
let cb = function(name) {
let o = {
name: name
}
return o;
}
let demo = getSingle( cb );
let d = demo('abc'); // {name: 'abc'}
let d1 = demo('efg'); // {name: 'abc'} 返回的一直是上面闭包中的result
console.log(d.name);
常用于实现单一对象,比如弹框,toast等。保证全局唯一性。