廃止
この機能は廃止されました。まだいくつかのブラウザで動作するかもしれませんが、いつ削除されてもおかしくないので、使わないようにしましょう。
Object.unobserve()
メソッドは、Object.observe()
メソッドで設定した監視の解除に使われていましたが、非推奨となりブラウザから削除されました。代わりに、一般的な Proxy
オブジェクトを使用してください。
構文
Object.unobserve(obj, callback)
引数
obj
- 監視を停止するオブジェクト。
callback
- オブジェクト obj の変更ごとに呼び出される、停止したい監視オブジェクトへの参照。
戻り値
指定したオブジェクト。
説明
オブジェクトからオブザーバを削除 (監視を解除) するには、Object.unobserve()
を Object.observe()
の後に呼び出す必要があります。
コールバックは関数への参照でなければならず、ここに匿名関数を使用しないでください。なぜなら、この参照は事前に行った監視の解除に使われるからです。コールバックとして匿名関数を使った場合、監視を解除できないので、Object.unobserve() の呼び出しは無意味となります。
使用例
オブジェクト監視の解除
var obj = { foo: 0, bar: 1 }; var observer = function(changes) { console.log(changes); } Object.observe(obj, observer); obj.newProperty = 2; // [{name: 'newProperty', object: <obj>, type: 'add'}] Object.unobserve(obj, observer); obj.foo = 1; // コールバックは呼び出されない。
匿名関数を使った場合
var person = { name : 'Ahmed', age : 25 }; Object.observe(person, function (changes) { console.log(changes); }); person.age = 40; // [{name: 'age', object: , oldValue: 25, type: 'update'}] Object.unobserve(person, function (changes) { console.log(changes); }); person.age = 63; // [{name: 'age', object: , oldValue: 40, type: 'update'}] // コールバックが常に呼び出される。
仕様
Strawman proposal specification.
ブラウザ実装状況
機能 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
基本サポート | 36 | 未サポート | 未サポート | 23 | 未サポート |
機能 | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
基本サポート | 未サポート | 36 | 未サポート | 未サポート | 23 | 未サポート |