--- title: Array.unobserve slug: Web/JavaScript/Reference/Global_Objects/Array/unobserve tags: - Array - JavaScript - Method - Obsolete translation_of: Archive/Web/JavaScript/Array.unobserve ---
Array.unobserve()メソッドは、{{jsxref("Array.observe()")}} で設定された監視を削除するために使われていましたが、非推奨となりブラウザから削除されました。代わりに、一般的な {{jsxref("Proxy")}} オブジェクトを使用してください。
Array.unobserve(arr, callback)
arr
callback
配列からオブザーバを削除するため、Array.unobserve()
は {{jsxref("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 |
---|---|---|---|---|---|
基本サポート | {{CompatChrome("36")}} [1] | {{CompatNo}} | {{CompatNo}} | {{CompatOpera("23")}} | {{CompatNo}} |
機能 | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
基本サポート | {{CompatNo}} | {{CompatChrome("36")}} [1] | {{CompatNo}} | {{CompatNo}} | {{CompatOpera("23")}} | {{CompatNo}} |
[1] Chrome 49 で非推奨になりました。