MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

Object.unobserve()

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

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 未サポート

関連情報

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

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