Proxy--1分钟ctrl+c,3分钟会用

Proxy === 中间商

二哈哥: ”我不想看废话,不想了解历史,只想知道它怎么用”

我: “好,点击

       Proxy,英文名 : 代理,代理的。

       ES6新属性(ie浏览器就别问了)。

       这个属性可以直接看成是一个中介工作(我要复杂化)。在做这个工作时,会涉及到收租问题。问题来了。房东给了你一个5000一月的房子

       house = { RMB : ‘5000’ }

你计划将这个房子放在平台上(参数:house—房子,handler—房子描述和租金)

pingtai = new Proxy(house, handler)

house:那个房子

Handler: (get,set两个函数)你房子信息,以及房子信息修改操作(我要收中介费。恰饭的!)

 

举个栗子

二哈哥:房子500,我一个月租8000,中间商,赚差价,买家多花钱,卖家收不到钱。

var house = {

        RMB : "500"

}

//代理

house  = new Proxy(house, {

set(target, key, value) {

      if (key === "RMB" && typeof value !== "number") {

        throw Error("RMB是金钱类型的呀,必须要数字 ");

      }

      // return Reflect.set(target, key, value); //中介软件自带工具,推荐使用

      target[key] = value;

      console.log('买的了吃亏,买的了上当')

       return true; //防止报错,不信你试试

    }

})

发布平台信息 console.log(house.RMB = 8000);

 

金毛哥:房子500,我一个月租500,只想炫耀家里有矿,还有富婆(不涉及修改的话,只需要使用get函数即可)。

var house = {

        RMB : "500"

}

//代理

house = new Proxy(house, {

get(target, key) {

      return target[key] += "家里有矿,还有富婆"

    }

})

发布平台信息 console.log(house.RMB)

 

  • <a id="main">OK</a>,现在开始就是正式信息了。

 

Proxy:作用,代理对象的属性,进行对象的属性修改和修饰。

双向数据绑定Demo : https://blog.csdn.net/I_recluse/article/details/104110531

 

直接Demo(当用户定义obj对象中的name属性时,打印修改前的名字,将输出名字修改成‘二哈哥’)

var obj = new Proxy(obj, {

set(target, key, value) {

      console.log(value)

      key == 'name' && (target[key] = '二哈哥') ;

      return true

    }

})

 

发布了2 篇原创文章 · 获赞 0 · 访问量 352

猜你喜欢

转载自blog.csdn.net/DoLi_JIN/article/details/105653969