廃止
この機能は廃止されました。まだいくつかのブラウザーで動作するかもしれませんが、いつ削除されてもおかしくないので、使わないようにしましょう。
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 は常に呼び出される。
ブラウザ実装状況
現在、互換性データを可読形式の JSON フォーマットに置き換えているところです。
この互換性一覧は古い形式を使っており、これに含まれるデータの置き換えが済んでいません。
手助けしていただける場合は、こちらから!
機能 | 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 で非推奨になりました。