我正在尝试找出使用原型设置 JavaScript 对象字段的正确方法。
我可以使用以下内容:
function myData() {};
myData.prototype.a = null;
myData.prototype.b = null;
myData.prototype.c = null;
var data = new myData();
data.a = 1;
data.b = 2;
data.c = 3;
但是,这似乎没有遵循适当的封装协议。
或者,我可以这样做:
function myData() {
this._a = null;
this._b = null;
this._c = null;
};
myData.prototype.__defineGetter__("a", function() {
return this._a;
});
myData.prototype.__defineSetter__("a", function(val) {
this._a = val;
});
当我的 getter 只是返回私有变量的值而不用它做任何事情时,这种方法似乎有点矫枉过正。
另外,如果我直到稍后才拥有这些值,那么在构造函数中将值设置为 null 是否正确?即 - 我稍后设置它们。