【问题标题】:Watch if an object has changed观察对象是否发生了变化
【发布时间】:2014-12-23 10:32:13
【问题描述】:

是否有可能每次对象发生变化时执行一些代码

var a = {x: 12, y: 63};

a.watch(function () { console.log('The object has changed!'); });

a.x = 16;   // The object has changed!
a.y = 1;   // The object has changed!

它似乎只在 Firefox 上可用:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/watch

如何在 JavaScript / node.js 中实现这一点?(如果可能,不使用 getter/setter 方法)

【问题讨论】:

标签: javascript node.js object.observe


【解决方案1】:

您可以使用Object Observe...这是实验性的,所以请谨慎操作...

var obj = {
    foo: 0,
    bar: 1
};

Object.observe(obj, function(changes) {
    console.log(changes);
});

obj.baz = 2;

【讨论】:

  • node.js 支持吗?
  • 是的,在--harmony 标志下。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-06
  • 2019-10-27
  • 1970-01-01
相关资源
最近更新 更多