zoukankan      html  css  js  c++  java
  • js监听对象属性的改变

    在ES5中,通过defineProperty()进行监听

    • 假设对user对象的name属性进行监听,当设置name属性值时,会执行相应的函数
    Object.defineProperty(user, 'name', {
        set : funtion(value){
                   name = value;
                    console.log('set: name:' + value)
            }
    })

    当需要设置对象中多个属性时,使用defineProperties()进行监听

    Object.defineProperties(obj,{
      a : {
            configurable: true, // 设置属性可以更改,默认为false
            set : function(value){}
      },      
       b : {
           configurable: true, // 设置属性可以更改,默认为false
            set : function(value){}
      }
    } 
    })

    在ES6中,通过Proxy实现

    funtion handle(){
       // 改写set方法,监听设置
        set: funtion(){},
        get: funtion(){}
    }
    
    let p = new Proxy({},handle) // 第一个参数为监听的对象,第二个参数为改写的方法
  • 相关阅读:
    Java 插入排序
    Java 浮点型与双精度数值比较
    Java 包装类Integer的值比较
    ORA-00942 table or view does not exist
    logging模块
    面向对象
    模块和包
    异常处理
    序列化模块
    css3选择器
  • 原文地址:https://www.cnblogs.com/ashen1999/p/12696242.html
Copyright © 2011-2022 走看看