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
どちらも高いレベルで同じことをしているようです。それらの顕著な違いは何ですか?
多くの違いがあります。
1 つの違いはObject.observe
、メッセージ ループに入ったときにコールバックを作成することです。つまり、オブジェクトへの多くの変更は、複数のコールバックではなく、すべての変更を含む単一のコールバックになります。
DOM の変更をリッスンする場合、同じ理由でミューテーション イベントがミューテーション オブザーバーに置き換えられました。このmicrotask
ソリューションは、同期コールバックよりもパフォーマンスが優れています。
さらに、Object.observe
Ecmascript 7 の提案された Ecmascript 標準です。つまり、提案された Javascript 標準です。
Object.observe は、オブジェクト全体への変更を監視するパフォーマンスの高い方法として意図されており、ユース ケースでは多くのオブジェクトをリッスンする必要があると予想されます。これは、AngularJs や Polymer などのバインド フレームワーク (つまり、クライアント側のテンプレート) の要件です。Object.watch は、特定のプロパティを監視するための Firefox の機能であり、デバッガー機能から生まれました。