廃止
この機能は廃止されました。まだいくつかのブラウザーで動作するかもしれませんが、いつ削除されてもおかしくないので、使わないようにしましょう。

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.

ブラウザ実装状況

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari
基本サポート 36 未サポート 未サポート 23 未サポート
機能 Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
基本サポート 未サポート 36 未サポート 未サポート 23 未サポート

関連情報

ドキュメントのタグと貢献者

このページの貢献者: Marsf, x2357, YuichiNukiyama
最終更新者: Marsf,