JS.nextスマートフォン用の表示で見るJS.nextJavaScriptの最新実装情報を追うブログこの広告は、90日以上更新していないブログに表示しています。概要Object.observeとは、オブジェクトの変更を監視するためのAPIであった。実装コストがかかる上、世のニーズとそれほど合っていないということで結局廃止された。引数に監視したいオブジェクト、第二引数にオブジェクト変更時の通知を受ける関数を指定する。log)プロパティが追加、更新されるなど、監視したオブジェクトが変化すると、変化に応した通知がまとめてされる。通知される各オブジェクトには必ずtypeとobject属性が含まれ、場合によってその他の属性も付く。タイプは全部で7種類あり、第三引数に配列で指定することにより限定できる。監視タイプ別説明addプロパティの追加を監視する。updateプロパティの更新を監視する。deleteプロパティの削除を監視する。]setPrototypeオブジェクトのプロトタイプの変更を監視する。reconfigureプロパティの設定の変更を監視する。preventExtensionsオブジェクトが拡張禁止にされるのを監視する。splice配列の長さが変わるような操作を監視する。他のタイプより優先される。Object.observeではデフォルトで監視対象のタイプにされない。Array.observeではデフォルトで監視対象のタイプにされる。要素が更新されたときや、通常のプロパティ追加には反応しない。]使用イメージ足りない属性は自分で補う。})})deliverChangeRecordsの使い道Object.deliverChangeRecords(callback)通常は一度に複数回変更があった場合、まとめて通知される。]deliverChangeRecordsを使えば即座に通知を起こすことができる。<(Notifier)>通知のためのnotifierオブジェクトを返す。(Notifier).prototype.notify(record)任意の通知を起こす。changeFn)まずchangeFnが同期的に呼ばれる。changeTypeが監視されているタイプだった場合、changeFn内では標準の通知が抑制される。そこでchangeFnがオブジェクトを返せば、代わりの通知を起こせる。使用イメージ基本的に、メソッドで標準の通知の代わりに、専用の通知を実装するために使う。}}1.observeしていない場合は何も起こらない。*log*2.observeしているが、zeroタイプを指定していない場合、標準の通知がされる。3.zeroタイプを指定している場合、代わりに指定した通知がされる。シンボルプロパティの監視シンボルプロパティに変更が加わっても通知はされない。*log*応用例MutationObserverと組み合わせるオブジェクトとノードの属性を同期させる関数を作る。true})}※注意※MutationObserverでは実際には値が変更されない代入でも通知されるが、Object.observeでは実際に値が変更される操作が加わらないと通知されないという違いがある。その性質により、このような単純な実装では一度の代入で無駄な再代入が何回か起こってしまう。非同期な処理を同期的に書ける関数タイプが実装された。--harmony_static_fieldsはてなブログをはじめよう!boaoaさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。