如何使用构造函数制作JavaScript单例而不使用return?

前端之家收集整理的这篇文章主要介绍了如何使用构造函数制作JavaScript单例而不使用return?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我目前知道在 JavaScript中构建单例的两种方法.第一:
var singleton = {
 publicVariable: "I'm public",publicMethod: function() {}
};

它是完美的,除了它没有我可以运行初始化代码的构造函数.

第二:

(function() {

var privateVariable = "I'm private";
var privateFunction = function() {}

return {
 publicVariable: "I'm public",publicMethod: function () {}
}

})();

第一个版本没有私有属性,也没有构造函数,但它更快更简单.第二个版本更复杂,更丑,但有一个构造函数和私有属性.

我不需要私有属性,我只想拥有一个构造函数.有没有我缺少的东西,或者是我唯一拥有的两种方法

解决方法

function Singleton() {
  if ( Singleton.instance )
    return Singleton.instance;
  Singleton.instance = this;
  this.prop1 = 5;
  this.method = function() {};
}​

猜你在找的JavaScript相关文章