博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浅谈 Object.observe
阅读量:6259 次
发布时间:2019-06-22

本文共 870 字,大约阅读时间需要 2 分钟。

国际惯例:转载或引用时请注明原文出处。

今天看到了  Object.observe 这个方面,感觉不错,这里就来简单介绍下。
 
Object.observe 这个方法 可以监听到 某个 对象的属性改变情况。使用方法如下

Object.observe(user,function(changes){
    //code 
   console.log(changes);
});
当  user 的属性发生变化,update,delete,add 时,都会触发该函数。
注意 :只有user该对象的属性变化才会触发函数,user的 prototype 的改变和 delete user 是不会触发的。
还有一点要注意的是:这个函数什么时候执行呢? 并不是改变属性就马上执行,而是当主线程其他代码执行完后才会执行。
<div id="test_1">wwwww</div> 
 user={};
Object.observe(user,function(changes){
   document.getElementById('test_1').innerHTML="qqqqq";
});
user.a=0;
console.log(document.getElementById('test_1').innerHTML); 
 
如果 是马上执行 那么,后来的 log  应该打出 qqqqq ,但结果却是 wwwww。
这一点还是蛮坑的,,,,,, 
函数中的 changes 表示的是 所有改变的内容, 如下图:
 是按 改变顺序进行排序的。  name 是 属性名, type 是改变方式(add,update,delete)。object  是 user 对象现在的值(这太坑了,,,不能实施获得对象的值)。 
PS: 连续2次给同一个属性赋同一个值是不会增加 change 的。
心得:这个函数不能及时反映对象的改变状况还是满坑的,并且次函数也不是被那么多浏览器支持。

转载于:https://www.cnblogs.com/liuguodong/p/4118720.html

你可能感兴趣的文章
内容循环滚动的表格
查看>>
Catalyst揭秘 Day7 SQL转为RDD的具体实现
查看>>
【转载】小公司如何管理
查看>>
DOM笔记(十):JavaScript正则表达式
查看>>
关于贴友的一个书本页面简单布局(html+css)的实现
查看>>
input 内容发生改变时触发事件
查看>>
IOS之表视图单元格删除、移动及插入
查看>>
转载翻译简介:关于Flash and C++ Native Extension C++扩展ANE——2
查看>>
【Android】10.4 卡片视图
查看>>
虚化技术的额外开销
查看>>
JS 中 call 和 apply 的理解和使用
查看>>
Codeforces Round #256 (Div. 2)
查看>>
20172309_《程序设计与数据结构(下)》_课堂测试修改报告。
查看>>
Linux发邮件之mail命令
查看>>
113 - Power of Cryptography 浮点数 pow()函数
查看>>
ES6中的Promise使用方法与总结
查看>>
生成文件的MD5、SHA、SHA256
查看>>
(二十九)方法调用之解析
查看>>
Springboot文件上传与下载
查看>>
Windows 8开发 WinRT 对ZIP文件解压缩及文件夹的ZIP压缩
查看>>