proxy代理

基础概念

proxy代理,顾名思义,可以代理一个对象。
然后可以拦截对象上的一些操作,产生副作用等。(实现响应式)

定义一个代理:
const p = new Proxy(target, handler)

  • target:代理的对象(目标对象)
  • handler:各种函数,行为捕捉器

其中target可以是函数,可以通过代理,修改函数的功能,而不影响原函数。

创建可撤销的proxy对象
Proxy.revocable()

Proxy代理是ES6新增特性,也是Vue3大部分的响应式实现原理

handler常用方法介绍

get

handler.get(target, property, receiver)

  • target: 目标对象
  • property: 被获取的属性名
  • receiver: proxy或继承proxy的对象

用于拦截读取属性操作

has

has(target, prop)
prop: 需要检查的属性
返回boolean值

用于拦截属性查询 in

set

set(target, prop, value, receiver)
prop: 将被设置的属性名
value: 新属性值
receiver: 最初被调用的对象,通常是proxy本身

返回Boolean值,true代表设置成功

应用场景

  • 不改变原函数,对代理进行功能修改
  • 捕获对象值的一些操作
posted @   一个斯帕纳  阅读(116)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示