我目前知道在
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() {};
}