• Proxy


    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
  • 相关阅读:
    第一次用python 写的简单爬虫 记录在自己的博客
    【转】使用notepad运行python
    Android Tools&Cmd
    箴言
    无问西东
    Unity存储路径
    手机屏幕亮度设定
    Go Lang
    iOS .tbd
    Prime31
  • 原文地址:https://www.cnblogs.com/allenzhang-920/p/13193538.html
Copyright © 2020-2023  润新知