Javascript 在Node.js中查看对象中的变量
当Javascript 在Node.js中查看对象中的变量,javascript,node.js,object,watch,Javascript,Node.js,Object,Watch,当对象中的某些变量发生更改时,需要通知我。但是对象不是预定义的。我尝试了下面的观察者 在所有这些监视程序中,对象是预定义的 我需要一个像下面这样的功能 //Initially the Object will be empty. var ex1 = { }; //Will watch for variable1 in that Object watch(ex1, "variable1", function(){ console.log("Variable1 change
对象中的某些变量发生更改时,需要通知我。但是对象
不是预定义的。我尝试了下面的观察者
在所有这些监视程序中,对象
是预定义的
我需要一个像下面这样的功能
//Initially the Object will be empty.
var ex1 = {
};
//Will watch for variable1 in that Object
watch(ex1, "variable1", function(){
console.log("Variable1 changed");
});
//Changing or Adding a variable1 in Object. Now the above watch should trigger.
ex1 = {
variable1 : "Hai",
variable2 : "Hello"
}
有没有观察家
这样做或做任何调整?在下面发布,因为它可能会帮助像我这样的一些人
我通过使用
在你的例子中,你没有改变任何关于对象的东西;您正在创建一个全新的对象并丢弃旧对象。您可以使用调试器查看变量。令人大开眼界的注释。。感谢assign
不会像您所说的那样将新对象分配给现有对象。Object.assign()方法用于将所有可枚举自身属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。复制属性值与复制对象不同,一般的理解是复制对象引用(如原始问题中代码的最后一行).谢谢Neek.更新了答案。我的措辞是错误的,但我所做的是正确的。我希望绝对是正确的,我只是想把Ryan的观点讲清楚。如果不清楚对象和引用,很容易陷入陷阱。ex.variable1='Hai';
与ex={variable1:'Hai'};
。感谢您的理解:)
//Initially the Object will be empty.
var ex1 = {
};
//Will watch for variable1 in that Object
watch(ex1, "variable1", function(){
console.log("Variable1 changed");
});
//Changing or Adding a variable1 in Object. Now the above watch got triggered.
var ex2 = {
variable1 : "Hai",
variable2 : "Hello"
}
Object.assign(ex1, ex2);