ES6 - Proxy API



ES6 使用 Proxy 实现了一种元编程的拦截形式。与 Reflect API 类似,Proxy API 是在 ES6 中实现元编程的另一种方式。Proxy 对象用于为基本操作定义自定义行为。代理对象代表实际对象执行某些操作。

下面列出了与 ES6 代理相关的各种术语

序号 方法和描述
1

handler

包含陷阱的占位符对象

2

traps

提供属性访问的方法。这类似于操作系统中陷阱的概念

1

target

代理虚拟化的对象。它通常用作代理的后端存储。

语法

下面是 Proxy API 的语法,其中,target 可以是任何类型的对象,例如数组、函数或另一个代理,而 handler 是一个其属性为函数的对象。这定义了代理的行为。

const proxy = new Proxy(target,handler)

Handler 方法

handler 对象包含 Proxy 的陷阱。所有陷阱都是可选的。如果未定义陷阱,则默认行为是将操作转发到 target。一些常见的 handler 方法如下:

序号 方法和描述
1 handler.apply()

函数调用的陷阱。

2 handler.construct()

new 运算符的陷阱。

3 handler.get()

获取属性值的陷阱。

4 handler.set()

设置属性值的陷阱。

5 handler.has()

in 运算符的陷阱。

广告