如何解决在 ES6 代理的构造函数中设置属性的陷阱
class Foo {
a: number;
b?: number;
constructor() {
this.a = 1;
setTimeout(() => {
this.b = 2;
},1000);
}
update() {
this.a = 10;
this.b = 20;
}
}
const instance = new Foo();
const proxy = new Proxy(instance,{
set: function (target: Foo,prop: keyof Foo,value: any): boolean {
console.log("update prop:",prop,value);
target[prop] = value;
return true;
}
});
proxy.update();
结果:
update prop: a 10
update prop: b 20
我也想记录在类构造函数中所做的更改,所以结果应该是:
update prop: a 1 // set in constructor
update prop: a 10
update prop: b 20
update prop: b 2 // set in constructor setTimeout
我知道为什么这段代码不像我想要的那样工作,但我不知道如何编写这种代码。这可能吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。