首页 > 其他 > 详细

Proxy

时间:2020-06-28 00:16:43      阅读:90      评论:0      收藏:0      [点我收藏+]

Proxy代理器

用于修改某些操作的默认行为,等同于在语言层面做出修改,所以属于一种“元编程”(meta programming),即对编程语言进行编程。

 

 

简单的例子,对获取某属性的处理

let apple = {
  color: ‘red‘,
  price: 8.6
}

let proxy = new Proxy(apple, {
  get (target, key) {
    if (key === ‘price‘) {
      return target[key] + 2.2
    } else {
      return target[key]
    }
  }
})

console.log(proxy.price)

10.8

 

如果想对某个数据进行保护,即不允许修改,也可以使用代理器

let apple = {
  color: ‘red‘,
  price: 8.6
}

let proxy = new Proxy(apple, {
  set (target, key, value) {
    return false
  }
})
proxy.color = ‘green‘
console.log(proxy.color)

red

 

创建一个可撤销的代理器

let apple = {
  color: ‘red‘,
  price: 8.6
}

let proxy = Proxy.revocable(apple, {
  set (target, key, value) {
    return false
  }
})
proxy.proxy.color = ‘green‘ // 通过可撤销实例的proxy属性得到代理器
window.console.log(proxy.proxy.color)
proxy.revoke() // 撤销代理
window.console.log(proxy.proxy.color)

red
TypeError: illegal operation attempted on a revoked proxy

 

Proxy

原文:https://www.cnblogs.com/allenzhang-920/p/13193538.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!