我有一个对象,我们称之为 obj
,看起来像这样:
const obj = {
key: "value"
}
现在我想在设置属性时执行一些操作。我听说过二传手, 我可以通过以下方式使用:
const obj = {
set key(e) {
console.log("Property key has been set!")
}
}
但我想为任何属性执行此操作......就像而不是仅针对键,它可以针对任何东西,例如:
obj.SomeKey = "value"
应记录"Property key has been set!"
对于任何属性(property)来说都是一样的......
JavaScript 有没有办法做到这一点?谢谢
最佳答案
您可以创建一个 ES6 Proxy
,它允许您修改 set
方法,如下所示:
const obj = {
key: "value"
};
const objProxy = new Proxy(obj, {
set: (obj, prop, v) => {
obj[prop] = v;
console.log("do something");
}
});
objProxy.name = "foo";
console.log(objProxy); // Proxy now has name attribute
console.log(obj); // And so does the original object
关于javascript - JavaScript 中任何内容的 Setter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55195401/