单体模式(单例模式)
- 单体模式就是希望可以在使用方法创建对象的时候,我们无论创建多少次对象都指向同一个。
 
//非单体模式//函数function notSingle(){    return {        a: 1    }}var a = notSingle();var b = notSingle();console.log(a === b);   //false//构造函数function notSingle1(){    this.a = 123;}var a1 = new notSingle1();var b1 = new notSingle1();console.log(a1 === b1); //false
// 单体模式var _unique = null;function createSingle(){    var obj = {        a: 1    }    if(_unique === null) {        _unique = obj;    }    return _unique;}var a = createSingle();var b = createSingle();console.log(a === b);//上面的方式:因为_unique放在全局,所有不安全//利用IIFE,创造闭包,把_unique变为私有变量var createSingle = (function(){    var _unique = null;    function single(){        return {            a:1        }    }    return function(){        if(_unique === null){            _unique = single();        }        return _unique;    }})();var a1 = createSingle();var b1 = createSingle();console.log(a1 === b1);