我目前知道在JavaScript中构建单例的两种方法。第一个:如何使用构造函数创建JavaScript单例式而不使用return?
var singleton = {
publicVariable: "I'm public",
publicMethod: function() {}
};
它是完美的,除了它没有可以运行初始化代码的构造函数。
二:
(function() {
var privateVariable = "I'm private";
var privateFunction = function() {}
return {
publicVariable: "I'm public",
publicMethod: function() {}
}
})();
第一个版本没有私人性质也不会有一个构造函数,但它是更快,更简单。第二个版本更复杂,更难看,但有一个构造函数和私有属性。
我不需要私人财产,我只是想要一个构造函数。有没有我缺少的东西,或者是我得到的唯一的两种方法?
第二种方法不是“丑陋”;这是语言的一个自然部分。能够用函数创建函数是Javascript最强大的功能之一。 – Pointy 2010-10-10 12:00:29