Object.observe和Object.watch有什么区别

时间:2013-10-11 20:50:13

标签: javascript watch object.observe

Object.watch:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/watch

Object.observe:http://wiki.ecmascript.org/doku.php?id=harmony:observe

他们似乎都在高层做同样的事情。他们之间有什么显着差异?

1 个答案:

答案 0 :(得分:2)

有很多不同。

Microtasks vs同步回调

一个区别是Object.observe在您进入消息循环时进行回调。即对对象的许多更改会导致单个回调包含所有更改而不是多个回调。

当听取DOM的变化时,由于同样的原因,突变事件被突变观察者取代。 microtask解决方案比同步回调更具性能。

标准与非​​标准

此外,Object.observe是Ecmascript 7的建议Ecmascript标准。它是一个提议的Javascript标准。

意图

Object.observe旨在作为监视整个对象更改的高效方法,并且用例预计需要监听许多对象。这是绑定框架(即客户端模板)的要求,例如AngularJs和Polymer。 Object.watch更像是一种用于监视特定属性的Firefox功能,并且是从调试器功能中生成的。