--- title: Object.unobserve() slug: Web/JavaScript/Reference/Global_Objects/Object/unobserve translation_of: Archive/Web/JavaScript/Object.unobserve ---
Object.unobserve() 是用来移除通过 {{jsxref("Object.observe()")}}设置的观察者的方法。
Object.unobserve(obj, callback)
obj
callback
Object.unobserve()
用来在 {{jsxref("Object.observe()")}} 被调用以后,从对象上移除一个观察者。
这个回调函数必须是一个函数的引用,而不能是一个匿名函数。因为这个引用将被用来移除之前设置的观察者方法。 给 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 : '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'}] // 回调函数将会被调用
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | {{CompatChrome("36")}} | {{CompatNo}} | {{CompatNo}} | {{CompatOpera("23")}} | {{CompatNo}} |
Feature | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Basic support | {{CompatNo}} | {{CompatChrome("36")}} | {{CompatNo}} | {{CompatNo}} | {{CompatOpera("23")}} | {{CompatNo}} |