设计模式-单例模式

Posted 乐小天

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了设计模式-单例模式相关的知识,希望对你有一定的参考价值。

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

  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

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

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

 

以上是关于设计模式-单例模式的主要内容,如果未能解决你的问题,请参考以下文章

常用代码片段

性能比较好的单例写法

你熟悉的设计模式都有哪些?写出单例模式的实现代码

单例模式以及静态代码块

设计模式之单例模式

设计模式之单例模式