过时
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() 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.

句法

Object.unobserve(obj, callback)
					

参数

obj

The object to stop observing.

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

返回值

The specified object.

描述

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.

范例

Unobserving an object

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

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
					

规范

Not part of any standard. Strawman proposal specification .

浏览器兼容性

Supported nowhere. Historically supported in Chrome 36 till 52.

另请参阅

元数据

  • 最后修改: