廃止
この機能は廃止されました。まだいくつかのブラウザーで動作するかもしれませんが、いつ削除されてもおかしくないので、使わないようにしましょう。
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.
ブラウザ実装状況
The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.
Update compatibility data on GitHub
| デスクトップ | モバイル | サーバー | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
unobserve | Chrome 未対応 36 — 52 | Edge 未対応 なし | Firefox 未対応 なし | IE 未対応 なし | Opera 未対応 なし | Safari 未対応 なし | WebView Android 未対応 なし | Chrome Android 未対応 なし | Firefox Android 未対応 なし | Opera Android 未対応 なし | Safari iOS 未対応 なし | Samsung Internet Android 未対応 なし | nodejs 未対応 なし |
凡例
- 未対応
- 未対応
- 非標準。ブラウザー間の互換性が低い可能性があります。
- 非標準。ブラウザー間の互換性が低い可能性があります。
- 非推奨。新しいウェブサイトでは使用しないでください。
- 非推奨。新しいウェブサイトでは使用しないでください。