美文网首页
2018-01-17 ES6 阮一峰教程摘记9 Proxy

2018-01-17 ES6 阮一峰教程摘记9 Proxy

作者: 安乐_f487 | 来源:发表于2018-09-10 22:14 被阅读0次

    Proxy(代理器)

    1.概述

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

    可以理解为:在目标对象之前设置一层‘拦截’,访问对象前都必须经过这一层,因此,这提供了一种机制,可以对外界的访问进行过滤、改写

    例子如下:

    Proxy实际重载了点运算符

    es6提供了Proxy构造函数,用来生成Proxy实例;例如:var proxy=new Proxy(target,handler);

    参数target:所要拦截的目标对象;

    参数handler:定制(描述)拦截行为的对象

    Proxy实例作为其他对象的原型对象的例子

    Proxy支持的可以拦截的操作一共有13种,即对应下面的Proxy实例的方法。

    注意点

    2.Proxy实例的方法

    get(),set(),apply(),has(),construct(),deleteProperty(),defineProperty(),getOwnPropertyDescriptor(),getPrototypeOf(),isExtensible(),ownKeys(),preventExtensions(),setPrototypeOf()

    3.Proxy.revocable()

    返回一个可取消的Proxy实例

    可取消的代理

    4.this问题

    在Proxy代理的情况下,目标对象内部的this关键字会指向Proxy代理

    5.实例:web服务的客户端

    Proxy 对象可以拦截目标对象的任意属性,这使得它很合适用来写 Web 服务的客户端。

    Proxy 可以拦截这个对象的任意属性,所以不用为每一种数据写一个适配方法,只要写一个 Proxy 拦截就可以了。

    相关文章

      网友评论

          本文标题:2018-01-17 ES6 阮一峰教程摘记9 Proxy

          本文链接:https://www.haomeiwen.com/subject/mvsuoxtx.html