zengyj
Articles5
Tags2
Categories0
令人忽视的Proxy

令人忽视的Proxy

Proxy在ES6中首次被提出,却经常性被忽略。今天来讲讲其中被人忽视的“细节“。

Proxy看似难以理解,实际上就是充当”拦截器“的用处,用Proxy来代理操作。

下面代码定义了一个Proxy实例

1
var proxy = new Proxy(target, handler);

其中,target参数表示所要拦截的目标对象,handler参数也是一个对象,用来定制拦截行为。例如下面代码

1
2
3
4
5
6
7
8
9
var proxy = new Proxy({}, {
get: function(target, propKey) {
return 35;
}
});

proxy.time // 35
proxy.name // 35
proxy.title // 35

从上述我们能看到,之后我们得通过proxy实例对象进行操作,而不是通过目标对象。

下面是列举支持的拦截操作函数

1
2
3
4
get(target, propKey, receiver)
set(target, propKey, value, receiver)
has(target, propKey)
...
Author:zengyj
Link:http://example.com/2021/05/03/proxy/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可