不确定,这是一个错误或功能,但如果我提供一个明确的'this'参数 对于一个函数,我将不会访问私有属性抛出这个。
class Test {
private _document: any;
}
const myDynamicProp = '....';
Object.defineProperty(Test.prototype, myDynamicProp , {
get: function(this: Test) {
return this._document[myDynamicProp]; // no access to private and protected field
}
});
有人可以建议一些澄清这一时刻的文件吗?
答案 0 :(得分:0)
无法访问私有财产,请将此
只有类体中显式的方法/函数才能访问私有字段。允许外部扩展从this
获取它将类似于允许外部类从实例获取它,因此是不允许的。
你应该使用getter而不是defineProperty
:
class Test {
private _document: any;
get foo() { return this._document }
}