ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ES6——Proxy

2019-08-27 11:03:45  阅读:140  来源: 互联网

标签:返回 ES6 target Object prop Proxy 拦截


一.作用
Proxy(代理期)用于修改某些操作的默认行为(语言本身的操作才具备默认值),因此属于一种“元编程”,即对编程语言进行二次编程

二.原理
Proxy可以理解成,在目标对象前架设一个“拦截层”,外界对该对象的访问都必须先通过这层拦截。
因此提供了一种机制,可以对外界的访问进行过滤和改写

三.基础语法
① 基础结构
let proxy = new Proxy(target, handler);
target:要拦截的目标对象
handlerObject,定义要拦截的行为
② 示例

let obj = {};
let objProxy = new Proxy(obj, {
    get(target, prop, self) {
        return 1;
    }
});
console.log(objProxy.name); // 1
console.log(objProxy.age); // 2

四.支持的拦截操作
get(target, prop, self)
作用:拦截对象属性的读取

set(target, prop, value, receiver)
作用:拦截对象属性的设置
返回:Boolean

has(target, prop)
作用:拦截in
返回:Boolean

deleteProperty(target, prop)
作用:拦截delete
返回:Boolean

ownKeys(target)
作用:拦截自有属性的遍历
返回:Array

getOwnPropertyDescriptor(target, prop)
作用:拦截Object.getOwnPropertyDescriptor
返回:Object,属性的描述对象

defineProperty(target, prop, propDesc)
作用:拦截Object.defineProperty、Object.defineProperties
返回:Boolean

setPrototypeOf(target, proto)
作用:拦截Object.setPrototypeOf
返回:Object

getPrototypeOf(target)
作用:拦截Object.getPrototypeOf
返回:Object

preventExtensions(target)
作用:拦截Object.preventExtensions
返回:Boolean

⑩①isExtensible(target)
作用:拦截Object.isExtensible
返回:Boolean

⑩②apply(target, obj, args)
作用:拦截call、apply

⑩③construct(target, args)
作用:拦截Proxy实例作为构造函数调用
返回:Object

标签:返回,ES6,target,Object,prop,Proxy,拦截
来源: https://blog.csdn.net/qq_34727202/article/details/100081450

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有