Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript中任何内容的Setter_Javascript_Setter - Fatal编程技术网

JavaScript中任何内容的Setter

JavaScript中任何内容的Setter,javascript,setter,Javascript,Setter,我有一个对象,我们叫它obj,它看起来像这样: const obj = { key: "value" } 现在我想在设置属性时做一些事情。我听说了二传, 我可以通过以下方式使用: const obj = { set key(e) { console.log("Property key has been set!") } } 但我想这样做,为了任何财产。。。与“键”类似,它将用于任何对象,例如: obj.SomeKey = "value" 应记录“已设置属性键!”

我有一个对象,我们叫它
obj
,它看起来像这样:

const obj = {
  key: "value"
}
现在我想在设置属性时做一些事情。我听说了二传, 我可以通过以下方式使用:

const obj = {
   set key(e) {
     console.log("Property key has been set!")
   }
}
但我想这样做,为了任何财产。。。与“键”类似,它将用于任何对象,例如:

obj.SomeKey = "value"
应记录
“已设置属性键!”
这对任何财产都是一样的。。。 JavaScript中有没有实现这一点的方法?谢谢

您可以创建一个ES6,它允许您修改
set
方法,如下所示:

const obj={
关键词:“价值”
};
const objProxy=新代理(obj{
集合:(物体、道具、v)=>{
obj[prop]=v;
log(“做某事”);
}
});
objProxy.name=“foo”;
console.log(objProxy);//代理现在具有name属性
console.log(obj);//原始对象也是如此
请继续阅读!