【发布时间】: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中,可以设置定时检查对象值的超时方式或时间间隔。
-
你不应该使用 watch 而是使用 observe 但它仍然是 ECMAScript7 提案 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… 目前你应该可以像 this 那样做
-
@Marcus 不,不会的。
-
是的,老
watch是一个 Netscape 扩展(据我所知)从未被任何其他供应商实现过。我对 Node 很好奇。 -
另见 ECMAScript6 Proxy developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… 它可能会这样做,但它会伤害你的填充物
标签: javascript node.js object.observe