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

问题描述 投票:0回答:1

在我开始之前,我只想说已经回答了关于这个主题的问题,我查了一下 - 但因为我还是一个初学者,我无法找到答案,因为它也是对我来说很复杂。所以我想给出我自己的例子,一个简单的例子,并尝试基于此理解。

基本上我想要做的是当已经存在的具有定义值的变量更改其值时运行函数。像这样的东西:

var testVar = 5;
function letMeKnow() {
console.log("The variable has changed!);
}

我想要的是,当我进入控制台并输入testVar = 7时,我想要运行letMeKnow()函数,并在控制台中打印出来。更具体地说,我希望JavaScript检测变量已更改,并自动运行该函数。我知道这曾经有可能与Object.observe()Object.watch(),但由于这些已被弃用,我想我必须使用getter和setter来实现这一点。我的问题是,我如何为这个例子做到这一点,尽可能保持简单?

谢谢!

javascript
1个回答
1
投票

使用getter / setter的简单示例可以是:

var obj = {
  value: '',
  letMeKnow() {
    console.log(`The variable has changed to ${this.testVar}`);
  },
  get testVar() {
    return this.value;
  },
  set testVar(value) {
    this.value = value;
    this.letMeKnow();
  }
}

console.log(obj.testVar)

obj.testVar = 5;
console.log(obj.testVar)

obj.testVar = 15;
console.log(obj.testVar)
© www.soinside.com 2019 - 2024. All rights reserved.