网站开发交付,网站专题怎么做,wordpress模板编写,网站突然不被百度收录一、是什么
单例模式只会在全局作用域下创建一次实例对象#xff0c;让所有需要调用的地方都共享这一单例对象
二、实现
// 单例构造函数
function CreateSingleton (name) {this.name name;this.getName();
};// 获取实例的名字
CreateSingleton.prototype.getName func…一、是什么
单例模式只会在全局作用域下创建一次实例对象让所有需要调用的地方都共享这一单例对象
二、实现
// 单例构造函数
function CreateSingleton (name) {this.name name;this.getName();
};// 获取实例的名字
CreateSingleton.prototype.getName function() {console.log(this.name)
};
// 单例对象
const Singleton (function(){var instance;return function (name) {if(!instance) {instance new CreateSingleton(name);}return instance;}
})();// 创建实例对象1
const a new Singleton(a);
// 创建实例对象2
const b new Singleton(b);console.log(ab); // true三、使用场景
页面存在一个模态框的时候只有用户点击的时候才会创建而不是加载完成之后再创建弹窗和隐藏并且保证弹窗全局只有一个
const getSingle function( fn ){let result;return function(){return result || ( result fn .apply(this, arguments ) );}
}; const createLoginLayer function(){var div document.createElement( div );div.innerHTML 我是浮窗;div.style.display none;document.body.appendChild( div );return div;
}; const createSingleLoginLayer getSingle( createLoginLayer ); document.getElementById( loginBtn ).onclick function(){var loginLayer createSingleLoginLayer();loginLayer.style.display block;
}; Vuex、redux全局态管理库也应用单例模式的思想 第三方库都是单例模式多次引用只会使用同一个对象如jquery、lodash、moment