1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 利用Object.defineProperty挂接set钩子 监控对象属性的修改事件

利用Object.defineProperty挂接set钩子 监控对象属性的修改事件

时间:2021-10-25 23:50:14

相关推荐

利用Object.defineProperty挂接set钩子 监控对象属性的修改事件

测试代码:

<html><script>"use strict";function test(){Object.defineProperty(window, "_name", {get : function(){console.log("gett is called ") },set : function(newValue){debugger;console.log("_name is filled!!!!");},enumerable : true,configurable : true});for( var i = 0; i < 2; i++) console.log(i);window._name = "2";};test();</script>

通过第5行开始的Object.defineProperty, 给window全局对象的_name属性设置了一个set hook,这样每当该属性被update时,注册的set hook会自动被调用:

测试:

一旦第18行window._name = 2被执行:

set hook会自动触发:

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。