zoukankan      html  css  js  c++  java
  • es6之Proxy代理

    1、代理Proxy

      作用:将对象交给Proxy代理,编写处理函数,来拦截目标对象的操作。

      

    2、使用

      Proxy中有两个参数,一个是被搭理的对象,一个是要进行的一些操作(使用花括号)。

    3、几个API的介绍

      get(target、property) 方法:获取对象的属性前进行的一些操作。

      set(target,property,value)方法:对对象的属性进行的一些操作

      ownKeys(target) 方法:将希望暴露的属性暴露出来。

      has(target,property)方法:判断是否有该属性,如果有返回true,没有返回false。

     1 <script>
     2     let car = {
     3         name: '大奔',
     4         price: 1500000,
     5         long: '150米'
     6     }
     7     let pro = new Proxy(car, {
     8         get(target, property) {
     9             if (property == 'name') {
    10                 console.log('大奔你值得拥有!');
    11             }
    12             return target[property]
    13         },
    14         set(target, property, value) {
    15             // console.log(property)
    16 
    17             if (property == 'addPrice') {
    18                 target.price += value;
    19             }
    20         },
    21         ownKeys(target) {
    22             return [name, price, long]
    23         },
    24         has(target, property) {
    25             if (target[property] === undefined) {
    26                 return false;
    27             }
    28             else {
    29                 return true;
    30             }
    31         }
    32     })
    33     pro.addPrice = 50000;
    34     console.log(pro.price);
    35     console.log('price' in pro);//true
    36     console.log('age' in pro); //false
    37     pro.name;//大奔你值得拥有
    38 </script>

    4、可取消的代理  Proxy.revocable()

      

     1 <script>
     2     let Qiang = {
     3         'name': '郭俊强'
     4     }
     5     let qiang = {
     6         get(target, property) {
     7             return '强'
     8         }
     9     }
    10     let object = Proxy.revocable(Qiang, qiang);
    11     console.log(object.proxy.name);
    12     object.revoke();
    13     console.log(object.proxy.name);   //报错
    14 </script>

      

  • 相关阅读:
    浅谈Cauchy不等式
    终于结束的起点——CSP-S 2019 第二轮游记
    LOJ 10172 涂抹果酱
    数字表格
    CSP-S 2019 第一轮 游记
    20191011模拟赛
    Luogu 2327 扫雷
    NOIAC 30 candy
    FormData文件上传
    sde表空间无法导入数据和编辑
  • 原文地址:https://www.cnblogs.com/qianqiang0703/p/13612535.html
Copyright © 2011-2022 走看看