ES6Proxy

    技术2023-09-09  103

    1. 概述

    Proxy用于修改某些操作的默认行为,属于“元编程”,即对编程语言进行编程。 Proxy可以理解成:在目标对象之前架设一层“拦截”,外界对该对象的访问,都必须先通过这层拦截,因此提供了一种机制,可以对外界的访问进行过滤和改写。 Proxy生成原生实例:

    var proxy = new Proxy(target, handler);

    其中,new Proxy 表示生成一个Proxy对象,target表示所要拦截的目标对象,handler表示

    2. Proxy实例的方法

    get() 用于拦截某个属性的读取操作,可以接受三个参数,依次为目标对象、属性名、Proxy实例本身(可选)。 set()用于拦截某个属性的赋值操作,可以接受四个参数,依次为目标对象、属性名、属性值、Proxy实力本身(可选)。

    3. Proxy.revocable()

    Proxy.revocable() 返回一个可取消的Proxy实例. Proxy.revocable()方法返回一个对象,该对象的proxy属性是Proxy实例,revoke属性是一个函数,可以取消Proxy实例。 Proxy.revocable()的一个使用场景是,目标对象不允许直接访问,必须通过代理访问,一旦访问结束,就收回代理权,不允许再次访问。

    4. this问题

    未完待续…

    Processed: 0.009, SQL: 9