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
他们似乎都在高水平上做同样的事情。它们之间的显着区别是什么?
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
他们似乎都在高水平上做同样的事情。它们之间的显着区别是什么?
有很多不同。
一个区别是Object.observe
当您进入消息循环时会进行回调。即,对对象的许多更改会导致包含所有更改的单个回调,而不是多个回调。
当监听 DOM 上的变化时,出于同样的原因,突变事件被突变观察者所取代。该microtask
解决方案比同步回调更高效。
此外,Object.observe
它是 Ecmascript 7 的建议 Ecmascript 标准。即,它是建议的 Javascript 标准。
Object.observe 旨在作为一种监视整个对象更改的高性能方式,并且该用例预计需要监听许多对象。这是 AngularJs 和 Polymer 等绑定框架(即客户端模板)的要求。Object.watch 更像是一个 Firefox 功能,用于监视特定属性,并且是从调试器功能中衍生出来的。