单例模式顾名思义就是说在实例化对象**的过程中, 只能存在一个实例对象, 经典的实现方式就是创建一个类, 这个类包含一个方法, 这个方法在没有对象存在的情况下, 将会创建一个新的实例对象, 如果对象存在, 这个方法只是返回这个对象的引用, 多数用于例如弹框(Modal)之类等, 更多的还比如是全局存储的对象流行框架中使用的如 Vux 和 Redux**
class Singleton {constructor() {this.state = false;this.instance = null;}getInstance() {if(!this.instance) {this.instance = new Singleton();}return this.instance;}show() {if(this.state) {console.log('已经显示了');return;}this.state = true;console.log('>>>>>> show');}hide() {if(!this.state) {console.log('已经隐藏掉了>>>>>>>>>');}this.state = false;console.log('>>>>>>>>>>>>>>>>> hide');}}const single = new Singleton();single.show()single.show();single.hide();single.hide();
像上边代码一样, 单例模式是只允许存在一个实例对象, 还有一种是可以使用对象直接创建, 可以避免有更多的变量命名冲突, 防止别人修改代码造成的 **bug**
