ES6之Proxy-Reflection-API

72次阅读

共计 572 个字符,预计需要花费 2 分钟才能阅读完成。

Proxy & Reflect

extends 的出现,使用内建对象的继承得以实现。Proxy 可以拦截 JS 引擎内部目标的底层对象操作,这些底层操作被拦截后会触发响应特定操作的陷阱函数(traps),对于别人封装好的对象或内建对象,都可以自定义操作。
而反射(Reflect)API 是以 Reflect 对象的形式出现的。API 中的默认特征与相同的底层操作是一致的,而通过代理可以重写这些操作,每个代理 Trap,对应一个命名和参数值都相同的 Reflect 方法。
Reflect 中所有方法及说明 –MDN

const target = {};
const proxy = new Proxy(target, {});
proxy.title = 'proxy';
console.log(proxy.title);
console.log(target.title);

target.title = 'target';
console.log(target.title);
console.log(proxy.title);

非常简单的 Proxy,没有实现任何自定义的 Trap 方法,都是默认实现。

GET Trap

SET Trap

Has Trap

deleteProperty Trap

原型 Trap

可扩展 Trap

属性描述符

ownKeys

apply & construct

在原型上进行 Proxy 应用

看来要等到下周才能完成了。

正文完
 0