4

每次对象更改时是否可以执行一些代码?

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 方法)

4

1 回答 1

4

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

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

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

obj.baz = 2;
于 2014-12-23T10:39:03.750 回答