免责声明本文只是在学习JS 响应式代理中的一些笔记,文中的资料也会涉及到引用,具体出处不详,商业用途请谨慎转载 。Proxy 定义Proxy用于修改对象的某些行为,获取值,设置值等
let p = new Proxy(target, handler);
- target 用Proxy包装的目标对象(可以是任何类型的对象,包括原生数组,函数,甚至另一个代理) 。
- 一个对象,其属性是当执行一个操作时定义代理的行为的函数 。
let {proxy,revocable} = Proxy.revocable(target, handler);- target,handler参数和new Proxy()一致 。
- revoke()方法调用后,代理会变为无效状态 。

文章插图
handler get拦截对象属性值的获取 。
get(target, property, receiver)
文章插图
set(target, property, value, receiver) 
文章插图
deleteProperty(target, property)
文章插图
getOwnPropertyDescriptor(target,property)
文章插图
defineProperty(target,property,descriptor)
文章插图
has(target,property) 
文章插图
ownKeys(target) 
文章插图
apply(target,ctx,args) 
文章插图
construct(target,args)
文章插图
getPrototypeOf(target)
文章插图
setPrototypeOf(target,proto)
文章插图
isExtensible(target)handler preventExtensions拦截对象的组织扩展方法preventExtensions(target)
文章插图
let obj = {id: 100,say: function () {console.log('say exec');return 'xxx'}}let handler = {get: function (target, property, receiver) {let value = https://tazarkount.com/read/Reflect.get(target, property, receiver)if (typeof value ==='function') {return function (...rest) {console.log(`before ${property} exec.`);let res = Reflect.apply(value, target, rest);console.log(`after ${property} exec.`);return res;}} else {return value;}},}let proxy = new Proxy(obj, handler);proxy.idproxy.say()
文章插图
【二 Reflection 基础知识】本文来自博客园,作者:只做你的向日葵,转载请注明原文链接:https://www.cnblogs.com/likme/p/15754486.html
- 春季老年人吃什么养肝?土豆、米饭换着吃
- 三八妇女节节日祝福分享 三八妇女节节日语录
- 老人谨慎!选好你的“第三只脚”
- 校方进行了深刻的反思 青岛一大学生坠亡校方整改校规
- 脸皮厚的人长寿!有这特征的老人最长寿
- 长寿秘诀:记住这10大妙招 100%增寿
- 春季老年人心血管病高发 3条保命要诀
- 眼睛花不花要看四十八 老年人怎样延缓老花眼
- 香槟然能防治老年痴呆症? 一天三杯它人到90不痴呆
- 老人手抖的原因 为什么老人手会抖
