考虑以下" class" :
function Test()
{
var data = new Uint8Array(232);
}
我想在data属性中添加以下访问器:
Object.defineProperty(Test.prototype, "data",
{
get: function()
{
// calculate other things related to data
return data;
}
});
我遇到了以下问题:
所以我试着将属性公之于众:
function Test2()
{
this._data = new Uint8Array(232);
}
Object.defineProperty(Test2.prototype, "data",
{
get: function()
{
// calculate other things related to data
return this._data;
},
// Avoid "TypeError: setting a property that has only a getter"
set: function(nv)
{
this._data = nv;
}
});
编辑:我现在使用" _data" (而不是" data")作为我的私有属性,以避免"数据"的递归问题。属性。这种模式似乎有效。
但这是一种好的和有效的模式吗?是否存在允许使用具有属性的伪私有变量的模式?