首页 >web前端 >js教程 >如何检测 JavaScript 变量变化?

如何检测 JavaScript 变量变化?

Patricia Arquette
Patricia Arquette原创
2024-12-18 07:12:10421浏览

How Can I Detect JavaScript Variable Changes?

观察 JavaScript 中的变量变化

原始问题:

JavaScript 中是否有一个事件,当修改特定变量?请考虑涉及 jQuery 的解决方案。

答案:

使用代理对象:

截至 2018 年,代理对象提供一种监视和拦截对象属性变化的有效机制。它的工作原理是创建一个包装目标对象的代理对象。

var targetObj = {};
var targetProxy = new Proxy(targetObj, {
  set: function (target, key, value) {
      console.log(`${key} set to ${value}`);
      target[key] = value;
      return true;
  }
});

targetProxy.hello_world = "test"; // console: 'hello_world set to test'

限制:

  • 旧版浏览器不支持代理对象(例如, IE11)。
  • 他们可能会对特殊对象表现出意想不到的行为(例如,

观察嵌套对象:

为了观察嵌套对象的变化,像 Observable Slim 这样的专业库提供了更全面的解决方案。

var test = {testing:{}};
var p = ObservableSlim.create(test, true, function(changes) {
    console.log(JSON.stringify(changes));
});

p.testing.blah = 42; // console:  [{"type":"add","target":{"blah":42},"property":"blah","newValue":42,"currentPath":"testing.blah",jsonPointer:"/testing/blah","proxy":{"blah":42}}]

以上是如何检测 JavaScript 变量变化?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn