代理,提供修改底层实现的方式,可以重写所有Reflect的方法
    一个Proxy对象包装另一个对象并拦截诸如读取/写入属性和其他操作,可以选择自行处理,或者透明的用于该对象处理它们
    QQ图片20201006111403.jpg

    语法**

    1. //代理一个目标对象
    2. //target:目标对象
    3. //handler:是一个普通对象,其中可以重写底层实现
    4. //返回一个代理对象
    5. new Proxy(target, handler)

    示例

    1. const obj = {
    2. a:1,
    3. b:3,
    4. }
    5. const proxy = new Proxy(obj,{
    6. /**
    7. * 修改属性值
    8. */
    9. set(target, propertyKey, value){
    10. Reflect.set(target,propertyKey,value)
    11. },
    12. /**
    13. * 获取属性值
    14. */
    15. get(target,propertyKey){
    16. if(Reflect.has(target,propertyKey)){
    17. return Reflect.get(target,propertyKey)
    18. }
    19. }
    20. })
    21. proxy.a = 100
    22. console.dir(proxy.a)