zoukankan      html  css  js  c++  java
  • ES6 proxy

    基本概念

    ECMAScript标准委员会定义了一个由14种内部方法组成的集合,亦即一个适用于所有对象的通用接口。而proxy的存在即是为了覆写这些内部方法。

    代理方式:

    var target={}.handle={};
    
    var proxy=new Proxy(target,handle);

    注意:

    (1)用Proxy代理的对象调用方法中的this指向Proxy

    (2)Proxy.revocable方法能够取消代理,该方法返回的对象包含一个.proxy属性和一个.revoke方法。调用revoke方法能够取消.proxy指向的Proxy实例

    let {proxy,revoke}=Proxy.revocable(target,handler);

    API

    ->MDN Proxy(同样定义了14中方法,与14种内部方法一一对应)

    API中的注意事项

    get(target, propKey, receiver) | set(target, propKey, value, receiver)

    receiver 是我们首先开始搜索这个属性的对象。有时我们必须要搜索几个对象,obj可能是一个在receiver原型链上的对象。

    has(target, propKey)

    has方法拦截的是HasProperty操作,而不是HasOwnProperty操作,虽然for...in循环也用到了in运算符,但是has拦截对for...in循环不生效。ownKeys方法拦截for...in循环。

    construct(target, args)

    newTarget指向创造实例对象时,new命令作用的构造函数

  • 相关阅读:
    【bzoj4240】有趣的家庭菜园
    「洛谷 P1801」黑匣子
    「SDOI 2009」Elaxia的路线
    NOIP 2016【蚯蚓】
    NOIP 2014【斗地主】
    尺取法
    POJ 3169 Layout
    51nod【1196】字符串的数量
    51nod1671【货物运输】
    hihocoder1075【开锁魔法】
  • 原文地址:https://www.cnblogs.com/goOtter/p/9573065.html
Copyright © 2011-2022 走看看