Proxy监听对象的数据变化,处理绑定数据很有用

Proxy可以监听对象身上发生了什么事情,并在这些事情发生后执行一些相应的操作。一下子让我们对一个对象有了很强的追踪能力,同时在数据绑定方面也很有用处。



var peo = { name: ‘zhangsan‘, salary: 27 };
//interceptor 拦截
var interceptor = {
  set: function (recObj, key, value) {
    console.log(key, ‘is changed to‘, value); //name is changed to lisi
    recObj[key] = value;
  }
};
//创建代理以进行侦听
proxyEngineer = new Proxy(peo, interceptor);
//做一些改动来触发代理
proxyEngineer.name = ‘lisi‘;//控制台输出:salary is changed to 60
console.log(peo) //{name: "lisi", salary: 27}
时间: 2024-08-02 05:37:15

Proxy监听对象的数据变化,处理绑定数据很有用的相关文章

好记性不如烂笔头42-javaWeb监听对象域属性变化(6)

JavaWeb中对象域的属性的变更的事件监听器,可以用来监听 ServletContext, HttpSession, HttpServletRequest 这三个对象中的属性变更信息事件的监听器. 这三个监听器接口分别是ServletContextAttributeListener, HttpSessionAttributeListener 和ServletRequestAttributeListener,这三个接口中都定义了三个方法来处理被监听对象中的属性的增加,删除和替换的事件,同一个事件

动态数据绑定之监听对象变化

---恢复内容开始--- 动态数据绑定是MVVM框架中最基础的的一个功能,简单描述就是:将数据和视图进行绑定,当数据发生改变时,视图随之改变,更深层次一点,数据绑定包括单向数据绑定和双向数据绑定. 本文从数据绑定中的问题出发,一步一步的来实现这个功能. 本文的所有的源代码地址: 点击此处查看源代码 问题一 给定任意一个对象,如何监听其属性的读取与变化?也就是说,如何知道程序访问了对象的哪个属性,又改变了哪个属性? 举个例子: let app = new Observer({ name: 'liu

vue watch属性监听对象变化。

有时候要监听对象的变化. 我一般用来做一堆input 表单里面条件是否达到,然后按钮的颜色变化. data: { return: { form: { name: '', tel: '', product_value: [], // 产品数组第一个是第一级,第二个是第二级. product_label: '', //产品选择选择对应的文字 xinghao_value: '', // 型号的值 xinghao_label: '', // 型号的名字 guige_value: '', // 规格的值

android 监听网络状态的变化及实战

android 监听网络状态的变化及实际应用 转载请注明博客地址:http://blog.csdn.net/gdutxiaoxu/article/details/53008266 平时我们在请求错误的情况下,通常会进行处理一下,一般来说,主要分为两方面的错误 - 没有网络的错误 - 在有网络的情况下,我们客户端的错误或者服务器端的错误 今天这篇博客主要阐述以下问题 怎样监听网络状态的变化,包括是否打开WiFi,否打开数据网络,当前连接的网络是否可用 网络没有打开情况下的处理,如弹出对话框,跳转到

VUE的watch监听对象

因为普通监听对象时,其实监听的该对象存放的堆地址,只有声明关键子字(deep: true)才能监听整个对象中所有属性变化: 当然如果监听的对象只有一两个属性,也可以直接分别监听其属性: //声明对象 data() { return { obj: { name: '黄国华' } } }, watch: { obj: { handler: function(newVal, oldVal) { console.log(newVal, oldVal); //因为对象为引用类型数据,所以新旧值其实是同一个

js 实时监听input中值变化

js 实时监听input中值变化 分类: Javascript2014-05-11 11:13 849人阅读 评论(0) 收藏 举报 [html] view plaincopyprint? <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>RunJS

关于如何更好的监听元素属性的变化(转)

我们都知道,jQuery有一个onchange的事件来判断类似input或者textarea标签值变化的事件. jQuery中是通过比如keyup,blur,click等事件来监听值的变化,如果变化就触发change事件. jQuery.event.special.change = { filters: { focusout: testChange, beforedeactivate: testChange, click: function( e ) { var elem = e.target,

AngularJS - Watch 监听对象

<body> <div ng-app="myApp"> <div ng-controller="firstController"> <p>价格:<input type="text" ng-model="iphone.money"></p> <p>个数:<input type="text" ng-model="

oninput和onpropertychange实时监听输入框值的变化

传统监听输入框的做法就是使用keyup.keydown.keypress,或者change事件来实现,但keyup.keydown.keypress事件是只要完成击键事件后就触发,不考虑输入框的值是否变化,也监听不了使用鼠标右键[剪贴]和[粘贴]这些操作,更监听不了使用JS动态改变值的变化.而change事件必须是焦点离开输入框后才触发,并不能实时监听.所以这几个事件来监听输入框值变化并不完美.ie浏览器(ie6-8)可以直接使用onpropertychange事件来实时监听(包括JS动态改变值