Please note, this is a STATIC archive of website developer.mozilla.org from 03 Nov 2016, cach3.com does not collect or store any user information, there is no "phishing" involved.

Array.unobserve

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

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 は常に呼び出される。

ブラウザ実装状況

機能 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,