首页 > 技术文章 > 设计模式-单例模式

longhx 2017-06-08 13:12 原文

  单例,即一个对象只有一个实例,即使实例化多次,拿到的也是同一个实例。

  JavaScript中,全局对象就是单例,如:window、document;获取的DOM也是单例的。

  单例一个最大的好处就是节省空间,或者说节省资源。

  这里有个简单单例实现:

var Singleton = (function() {
    var instance;
    return function(name) {
        if(instance) {
            return instance;
        }else {
            this.name = name; 
            return instance = this;
        }
    }
})()
console.log(new Singleton('a').name);//a
console.log(new Singleton('b').name);//a

  利用闭包保存独立作用域的特性,在闭包里保存第一次创建的实例,今后每次创建都只返回该实例而不再创建。

  当然单例还有很多种实现方式,后面单独补充。

 

推荐阅读