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

Array.unobserve()メソッドは、Array.observe() で設定された監視を削除するために使われていましたが、非推奨となりブラウザから削除されました。代わりに、一般的な Proxy オブジェクトを使用してください。

構文

Array.unobserve(arr, callback)

引数

arr
監視を停止する配列。
callback
arr 配列の変更時に毎回呼び出されるのを停止するための、オブザーバへの参照。

説明

配列からオブザーバを削除するため、Array.unobserve()Array.observe() の後に呼び出される必要があります。

callback は関数への参照とすべきであり、匿名関数ではいけません。なぜなら、この参照は以前のオブザーバを解除するために使用されるからです。callback として匿名関数を使った Array.unobserve() の呼び出しは、オブザーバを削除できないので無意味です。

配列の監視を削除

var arr = [1, 2, 3];

var observer = function(changes) {
  console.log(changes);
}

Array.observe(arr, observer);
​
arr.push(4);
// [{type: "splice", object: <arr>, index: 3, removed:[], addedCount: 1}]

Array.unobserve(arr, observer);

arr.pop();
// callback は呼び出されなかった。

匿名関数の使用

var persons = ['Khalid', 'Ahmed', 'Mohammed'];

Array.observe(persons, function (changes) {
  console.log(changes);
});

persons.shift(); 
// [{type: "splice", object: <arr>, index: 0, removed: [ "Khalid" ], addedCount: 0 }]

Array.unobserve(persons, function (changes) {
  console.log(changes);
});

persons.push('Abdullah');
// [{type: "splice", object: <arr>, index: 2, removed: [], addedCount: 1 }]
// callback は常に呼び出される。

ブラウザ実装状況

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 [1] 未サポート 未サポート 23 未サポート
機能 Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
基本サポート 未サポート 36 [1] 未サポート 未サポート 23 未サポート

[1] Chrome 49 で非推奨になりました。

関連情報

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

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