前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用Object.defineProperty挂接set钩子,监控对象属性的修改事件

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

作者头像
Jerry Wang
发布2020-03-09 14:06:45
8880
发布2020-03-09 14:06:45
举报

测试代码:

代码语言:javascript
复制
<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的原创文章,请关注公众号"汪子熙"

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-03-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档