How to use javascript proxy for nested objects

前端 未结 4 773
礼貌的吻别
礼貌的吻别 2020-12-02 13:22

I have this code in js bin:

var validator = {
  set (target, key, value) {
    console.log(target);
    console.log(key);
    console.log(value);
    if(isO         


        
4条回答
  •  情歌与酒
    2020-12-02 13:47

    You can add a get trap and return a new proxy with validator as a handler:

    var validator = {
      get(target, key) {
        if (typeof target[key] === 'object' && target[key] !== null) {
          return new Proxy(target[key], validator)
        } else {
          return target[key];
        }
      },
      set (target, key, value) {
        console.log(target);
        console.log(key);
        console.log(value);
        return true
      }
    }
    
    
    var person = {
          firstName: "alfred",
          lastName: "john",
          inner: {
            salary: 8250,
            Proffesion: ".NET Developer"
          }
    }
    var proxy = new Proxy(person, validator)
    proxy.inner.salary = 'foo'

提交回复
热议问题