0%

前端常见知识点整理 ---- Proxy

作者:李旭光
引用请标明出处

Proxy

ProxyES6 中新增的功能,可以用来自定义对象中的操作

1
2
3
4
5
// js代码

let p = new Proxy(target, handler);
// `target` 代表需要添加代理的对象
// `handler` 用来自定义对象中的操作

可以很方便的使用 Proxy 来实现一个数据绑定和监听

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
let onWatch = (obj, setBind, getLogger) => {
let handler = {
get(target, property, receiver) {
getLogger(target, property)
return Reflect.get(target, property, receiver);
},
set(target, property, value, receiver) {
setBind(value);
return Reflect.set(target, property, value);
}
};
return new Proxy(obj, handler);
};

let obj = { a: 1 }
let value
let p = onWatch(obj, (v) => {
value = v
}, (target, property) => {
console.log(`Get '${property}' = ${target[property]}`);
})
p.a = 2 // bind `value` to `2`
p.a // -> Get 'a' = 2
如果觉得不错请支持作者
------ 版权声明 ------

本文标题:前端常见知识点整理 ---- Proxy

文章作者:

发布时间:2020年01月03日 - 04:00

最后更新:2020年04月02日 - 03:20

原始链接:https://blog.lifesli.com/2020/01/03/FE-guide-async-Proxy/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。