我一直在寻找一种使用构造函数模块模式访问私有属性的方法。我想出了一个可行的解决方案,但不确定这是最佳的。
mynamespace.test = function () {
var s = null;
// constructor function.
var Constr = function () {
//this.s = null;
};
Constr.prototype.get = function () {
return s;
};
Constr.prototype.set = function (s_arg) {
s = s_arg;
};
// return the constructor.
return new Constr;
};
var x1 = new mynamespace.test();
var x2 = new mynamespace.test();
x1.set('x1');
alert('x1 get:' + x1.get()); // returns x1
x2.set('x2');
alert('x2 get:' + x2.get()); // returns x2
alert('x1 get: ' + x1.get()); // returns x1