如何在JavaScript中检测变量何时更改值?

如何在JavaScript中检测变量何时更改值?,javascript,Javascript,在我开始之前,我想说的是,关于这个主题已经有了答案,我查了一下——但是因为我还是一个初学者,我不能真正找出答案,因为它对我来说太复杂了。所以我想给出我自己的例子,一个非常简单的例子,并试图基于此理解 本质上,我想做的是当一个已经存在的变量(具有定义的值)更改其值时运行一个函数。大概是这样的: var testVar = 5; function letMeKnow() { console.log("The variable has changed!); } 我想要的是,当我转到控制台并键入时,比

在我开始之前,我想说的是,关于这个主题已经有了答案,我查了一下——但是因为我还是一个初学者,我不能真正找出答案,因为它对我来说太复杂了。所以我想给出我自己的例子,一个非常简单的例子,并试图基于此理解

本质上,我想做的是当一个已经存在的变量(具有定义的值)更改其值时运行一个函数。大概是这样的:

var testVar = 5;
function letMeKnow() {
console.log("The variable has changed!);
}
我想要的是,当我转到控制台并键入时,比如说
testVar=7
,我想要运行
letMeKnow()
函数,并在控制台中打印一些内容。更具体地说,我希望JavaScript检测到变量已更改,并自动运行该函数。我知道这在
Object.observe()
Object.watch()
中曾经是可能的,但由于这些都不推荐使用,我想我必须使用getter和setter来实现这一点。我的问题是,对于这个例子,我将如何做到这一点,使它尽可能简单

谢谢

使用/的简单示例如下:

var obj={
值:“”,
让我知道(){
log(`变量已更改为${this.testVar}`);
},
获取testVar(){
返回此.value;
},
设置testVar(值){
这个值=值;
这个。让我知道();
}
}
console.log(obj.testVar)
obj.testVar=5;
console.log(obj.testVar)
obj.testVar=15;

log(obj.testVar)
getter和setter是实现这一点的方法编写一个为您设置值的函数,然后在任何地方使用它。除了具有属性的对象、检查值的计时器或大型库之外,您别无选择。变量没有“我刚刚更改”事件。您应该阅读以了解和理解。如果是“它不起作用”的问题,那么可能会有一个简短而简单的答案。此外,你们的阅读方向是正确的(getters-setters),所以继续吧!可能重复的