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

What is the difference between Object.observe and Object.watch

本文关键字:Object 什么 区别 watch observe      更新时间:2023-09-26

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

对象观察:http://wiki.ecmascript.org/doku.php?id=harmony:observe

他们似乎都在高层次上做同样的事情。它们之间的显着区别是什么?

有很多不同之处。

微任务与同步回调

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

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

标准

与非标准

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

意图

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