Javascript 在什么情况下,我们需要在Java中实现单例类

Javascript 在什么情况下,我们需要在Java中实现单例类,javascript,Javascript,在什么情况下,我们需要在javascript中实现Singleton类,如下所示 var Singleton = (function () { var instance; function createInstance() { var object = new Object("I am the instance"); return object; } return { getInstance: function

在什么情况下,我们需要在javascript中实现Singleton类,如下所示

var Singleton = (function () {
    var instance;

    function createInstance() {
        var object = new Object("I am the instance");
        return object;
    }

    return {
        getInstance: function () {
            if (!instance) {
                instance = createInstance();
            }
            return instance;
        }
    };
})();

function run() {

    var instance1 = Singleton.getInstance();
    var instance2 = Singleton.getInstance();

    alert("Same instance? " + (instance1 === instance2));  
}

singleton模式是一种设计模式,它将类的实例化限制为一个对象。当需要一个对象来协调整个系统中的操作时,这非常有用。这一概念有时被推广到只有一个对象时运行效率更高的系统,或者将实例化限制在一定数量的对象上的系统。这个术语来源于单子的数学概念

JavaScript中最简单的单例实现是:

var Singleton = {};
我们从这一实施中获得了哪些好处:

  • 它只实例化一个对象
  • 它是安全的——它将对单例的引用保存在变量中,该变量位于词法闭包中,外部世界无法访问
  • 它允许您使用一些参数初始化单例。包装单例的模块模式不知道初始化参数,它只是使用
    apply
  • 您可以使用
    instanceof
    运算符

  • 当您需要一个实例时?控制任何需要或应该在其环境中唯一的资源。例如,库、一个覆盖的绘图画布、一个特定的解析器……非常感谢您提供了详细的答案“它允许您使用一些参数初始化singleton”。这没有什么意义。如果它是单例,只有一种有效的初始化方法,所以您只需硬编码即可。