假设我们有一个对象:
const obj = {
foo: bar,
boop: "beep",
}
现在,我想添加一些在此对象中设置属性(实际上也可以得到)时任何发生的功能。让我们保持简单,说添加的功能只是console.log("a set/get action was just triggered on obj!")
。
我该如何实现?
高级扩展程序:
命名设置的属性和设置的值。
为清楚起见,一些示例行为:
// simple:
obj.foo = "not bar anymore!";
// console output: a set/get action was just triggered on obj!
obj.rand = "a randomly added prop here";
// console output: a set/get action was just triggered on obj!
// advanced:
obj.boop = "burp";
// console output: a set/get action was just trigged on obj with prop: "boop", value: "burp".
obj.newRand = "a new randomly added prop here";
// console output: a set/get action was just trigged on obj with prop: "newRand", value: "a new randomly added prop here";
奖金:
欢迎使用其他任何方法来解决此问题。
答案 0 :(得分:7)
改为使用带有{getter / setter陷阱”的Proxy对象。
通过Proxy对象中的陷阱,您可以在自定义功能中插入对象方法,同时在过程结束时返回实际的对象数据。
代码示例:
euler_cfg