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

如何检测 JavaScript 变量变化?

Patricia Arquette
发布: 2024-12-18 07:12:10
原创
416 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板