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命令作用的构造函数

  • 相关阅读:
    关于自链接的视图的更新
    JavaScript局部变量与全局变量2
    减少IDE中的新建项
    whitespace对select无效
    学习摘录21
    让我记得写文档的设置
    本地连接不见了
    jquery 学习笔记
    jquery用load引入页面
    android笔记
  • 原文地址:https://www.cnblogs.com/goOtter/p/9573065.html
Copyright © 2011-2022 走看看