Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.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 检查某类对象的值是否已更改_Javascript_Html_Css_Node.js - Fatal编程技术网

Javascript 检查某类对象的值是否已更改

Javascript 检查某类对象的值是否已更改,javascript,html,css,node.js,Javascript,Html,Css,Node.js,我需要检查一个对象的元素是否被改变,并根据它改变另一个值 例如: class-myClass{ 构造函数(值1、值2){ this.value1=value1 this.value2=value2 此参数的值={ value1:this.value1, value2:这个 } } } var myObject=新的myClass(2,4) 日志(myObject.value1,myObject.values) myObject.value1++//ou myObject.value1=3 //

我需要检查一个对象的元素是否被改变,并根据它改变另一个值

例如:

class-myClass{
构造函数(值1、值2){
this.value1=value1
this.value2=value2
此参数的值={
value1:this.value1,
value2:这个
}
}
}
var myObject=新的myClass(2,4)
日志(myObject.value1,myObject.values)
myObject.value1++//ou myObject.value1=3
//应为日志3{“value1”:3,“value2”:4}

console.log(myObject.value1,myObject.values)
Make
myClass
实例成为真理的单一来源

class-myClass{
构造函数(值1、值2){
this.value1=value1
this.value2=value2
const container=this;
此参数的值={
获取值1(){
返回容器。值1
},
获取值2(){
返回容器1.2
}
}
}
}
var myObject=新的myClass(2,4)
日志(myObject.value1,myObject.values)
myObject.value1++//ou myObject.value1=3
//应为日志3{“value1”:3,“value2”:4}

console.log(myObject.value1,myObject.values)
如果要动态处理对象的所有属性,则可以使用代理,而不是单独的setter和getter

class-myClass{
构造函数(值1、值2){
this.value1=value1
this.value2=value2
此参数的值={
value1:this.value1,
value2:这个
}
}
}
var myObject=新的myClass(2,4);
var proxied=新代理(myObject{
获得(目标、道具){
返回Reflect.get(prop==“values”?target:target.values,prop);
},
设定(目标、道具、价值){
返回Reflect.set(prop==“values”?目标:target.values,prop,value);
}
});
proxied.value1++//ou myObject.value1=3
proxied.value2=1000;

console.log(“代理”,代理)哦,我刚刚尝试使用
获取值1(){return this.value1}
,我没有想过使用变量作为
this
。这太简单了。谢谢@LuísHNrique
getter中的this
将是
对象,因此调用this.value1
基本上会导致堆栈溢出:)