我将这种模式用于单身人士,在示例中,单身人士是 PlanetEarth:
var NAMESPACE = function () {
var privateFunction1 = function () {
privateFunction2();
};
var privateFunction2 = function () {
alert('I\'m private!');
};
var Constructors = {};
Constructors.PlanetEarth = function () {
privateFunction1();
privateFunction2();
};
Constructors.PlanetEarth.prototype = {
someMethod: function () {
if (console && console.log) {
console.log('some method');
}
}
};
Constructors.Person = function (name, address) {
this.name = name;
this.address = address;
};
Constructors.Person.prototype = {
walk: function () {
alert('STOMP!');
}
};
return {
Person: Constructors.Person, // there can be many
PlanetEarth: new Constructors.PlanetEarth() // there can only be one!
};
}();
由于PlanetEarth的构造函数仍然是私有的,因此只能有一个。
现在,有些事情告诉我,这种自制的东西不是最好的,主要是因为我没有受过学术教育,而且我倾向于以愚蠢的方式解决问题。你会提出什么作为我的方法更好的替代方案,其中更好的定义是在风格上更好和/或更强大?