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.

The Object.unobserve() method was used to remove observers set by Object.observe(), but has been deprecated and removed from Browsers. You can use the more general Proxy object instead.

Syntax

JavaScript
Object.unobserve(<var>obj</var>, <var>callback</var>)

Parameters

obj
The object to stop observing.
callback
The reference to the observer to stop calling each time changes are made on the object obj.

Return value

The specified object.

Description

Object.unobserve() should be called after Object.observe() in order to remove an observer from an object.

The callback should be a reference to a function and not an anonymous function, because this reference will be used to unset the previous observer. It's useless to call Object.unobserve() with an anonymous function as callback, it will not remove any observer.

Examples

Unobserving an object

JavaScript
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;
// The callback wasn't called

Using an anonymous function

JavaScript
var person = {
  name : 'Ahmed',
  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'}]
// The callback will always be called

Specifications

Strawman proposal specification.

Browser compatibility

Feature Chrome Firefox (Gecko) Internet Explorer Opera Safari
Basic support 36 No support No support 23 No support
Feature Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
Basic support No support 36 No support No support 23 No support

See also

License

© 2016 Mozilla Contributors
Licensed under the Creative Commons Attribution-ShareAlike License v2.5 or later.
https://developer.mozilla.org/en-us/docs/web/javascript/reference/global_objects/object/unobserve

JavaScript Method Object Obsolete