JS Object.unobserve()

🌙
手机阅读
本文目录结构

非标准
该特性是非标准的,请尽量不要在生产环境中使用它!

Object.unobserve() 是用来移除通过 Object.observe()设置的观察者的方法。

语法

Object.unobserve(obj, callback)

参数

obj

需要停止观察的对象。

callback

通过 observer 给 obj 对象设置的回调函数.

描述

Object.unobserve() 用来在 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: , 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: , oldValue: 25, type: 'update'}]

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

person.age = 63;
// [{name: 'age', object: , oldValue: 40, type: 'update'}]
// 回调函数将会被调用

相关链接

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了