在开始之前,我想说关于这个话题已经有答案了,我查了一下——但因为我还是个初学者,我真的想不出答案,因为它太对我来说很复杂。所以我想举我自己的例子,一个非常简单的例子,并尝试在此基础上理解。
本质上,我想要做的是当一个已经存在的变量(具有定义的值)更改其值时运行一个函数。像这样的东西:
var testVar = 5;
function letMeKnow() {
console.log("The variable has changed!);
}
Run Code Online (Sandbox Code Playgroud)
我想要的是,当我转到控制台并键入时,例如testVar = 7,我希望该letMeKnow()函数运行,并在控制台中打印出一些内容。更具体地说,我希望 JavaScript 检测到变量已更改,并自动运行该函数。我知道这曾经可以使用Object.observe()or Object.watch(),但由于这些已被弃用,我想我必须使用 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)Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9462 次 |
| 最近记录: |