21

我发现这个要点可以检测对象指定字段的变化: https ://gist.github.com/3138469

但它只在一个字段上绑定一个事件。

有人知道检测整个 Javascript 对象变化的函数或技巧吗?

4

3 回答 3

23

2019 Update: These days this can be achieved using Proxy API in a much more efficient manner. The on-change library uses the Proxy API behind the scene to make this even easier.

2012 Update: I've just noticed that the author of Watch.js is referencing a library with much broader browsers' support. MultiGetSet.JS

When I want to achieve this I usually use Watch.js, you can watch a whole object or one attribute.

于 2012-07-20T11:44:50.127 回答
3

目前这是不可能的,您只能为单个属性定义 getter/setter。

然而,有一个Proxy可以做到这一点的对象草案。今天,它仅在 Firefox 的 Javascript 1.8.5 中受支持

于 2012-07-20T11:35:40.810 回答
2

使用 watch.js 是不可能的。它只是检测对象的变化或对象的属性。它不会检测我们是否向对象添加属性或更改新添加的属性...

于 2014-02-14T19:37:25.487 回答