我将这种模式用于单身人士,在单例中,单身人士是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 { …
Run Code Online (Sandbox Code Playgroud) 我目前正在使用以下模式在Javascript中创建名称空间和单例对象:
var Namespace = function () {
var priv = {
privateVar1: '',
privateVar2: '',
privateFunction1: function () {
//do stuff
[...]
},
[...]
};
var pub = {
publicVar1: '',
publicFunction1: function () {
//do stuff with private functions and variables
priv.privateVar1 = priv.privateFunction1(pub.publicVar1);
[...]
},
[...]
};
return pub;
}();
Run Code Online (Sandbox Code Playgroud)
我希望你明白这个主意.有没有办法创建您认为更清洁或更好的命名空间(解释原因)?