Object.unobserve()

Obsolete
This feature is obsolete. Although it may still work in some browsers, its use is discouraged since it could be removed at any time. Try to avoid using it.

Метод Object.unobserve() використовувався для видалення спостерігачів, встановлених методом Object.observe(), але він застарів та був прибраний з переглядачів. Ви можете натомість скористатись більш загальним об'єктом Proxy.

Синтаксис

Object.unobserve(obj, callback)

Параметри

obj
Об'єкт, за яким треба припинити спостереження.
callback
Посилання на спостерігач, який треба припинити викликати кожен раз, коли у об'єкті obj відбувається зміна.

Значення, що повертається

Вказаний об'єкт.

Опис

Object.unobserve() має викликатися після Object.observe(), щоб прибрати з об'єкта спостерігач.

Параметр callback має бути посиланням на функцію, а не анонімною функцією, бо це посилання буде використано, щоб прибрати попередній спостерігач. Немає сенсу викликати 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: 'Ахмед',
  age: 25
};

Object.observe(person, function(changes) {
  console.log(changes);
});

person.age = 40; 
// [{name: 'age', object: <obj>, oldValue: 25, type: 'update'}]

Object.unobserve(person, function(changes) {
  console.log(changes);
});

person.age = 63;
// [{name: 'age', object: <obj>, oldValue: 40, type: 'update'}]
// Функція зворотного виклику викликатиметься завжди

Специфікації

Strawman proposal specification.

Сумісність з веб-переглядачами

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
unobserve
DeprecatedNon-standard
Chrome No support 36 — 52Edge No support NoFirefox No support NoIE No support NoOpera No support NoSafari No support NoWebView Android No support NoChrome Android No support NoFirefox Android No support NoOpera Android No support NoSafari iOS No support NoSamsung Internet Android No support Nonodejs No support No

Legend

No support  
No support
Non-standard. Expect poor cross-browser support.
Non-standard. Expect poor cross-browser support.
Deprecated. Not for use in new websites.
Deprecated. Not for use in new websites.

Див. також