我目前知道在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