当前位置: 首页 > news >正文

Proxy与Reflect

监听对象操作

在Object中,可以通过defineProperty中的get,set进行监听,

Proxy基本使用

有两个参数,第一个是要代理的对象,第二个是捕获器,在不知道捕获器使用哪个之前可以先传个空对象。就会启用默认的捕获器。

代理对象是可以获取到原对象的值,对值更改,原对象的值,也会更改,这就是启用了默认捕获器

Proxy的set和get捕获器

设置获取的捕获器,有三个参数,第一个是代理的对象,第二个是需要获取的key,设置值的捕获器也是有 四个参数,第一个是代理的对象,第二个是需要获取的key,带三个为设置的新value

判断某key是否存在该对象中,也可以使用代理对象,然后增加一个监听in的捕获器,即可监听了

对删除操作监听

Proxy所有捕获器

获取对象原型捕获器,设置对象原型捕获器,判断某个对象能否进行扩展捕获器

Proxy的constructor和apply

对函数的apply捕获器,三个参数,第一个是函数,第二个是this和第三个要处理数据

Reflect的作用

Reflect的常见方法

Reflect的使用

使用reflect的区别就是,Reflect返回的是一个布尔类型,可以判断操作是否成功

通过代理对象,来查看name值,来到对象中的set和get方法中,this的指向还是obj而不是objProxy,这就违背了代理对象的初心,所以我们需要更改方式。

因为当访问.name时,只来到代理对象的get捕获器一次。如果,this指向的是objProxy,那么访问到对象的get,里面的this._name,就相当于objProxy._name,按理来说就会再来一次get的捕获器中。

Receiver的作用

receiver其实就是代理对象,receiver会当做代理对象传入对象中的this。此时就解决了,get中this指向问题了

Reflect的construct

http://www.lryc.cn/news/502920.html

相关文章:

  • 【安卓开发】【Android Studio】启动时报错“Unable to access Android SDK add-on list”
  • 【C语言篇】C 语言总复习(下):点亮编程思维,穿越代码的浩瀚星河
  • AI技术架构:从基础设施到应用
  • centos7的yum镜像源设置
  • Qt6开发自签名证书的https代理服务器
  • HarmonyOS:多线程并发-Worker
  • 小程序IOS安全区域优化:safe-area-inset-bottom
  • C++ 中多态性在实际项目中的应用场景
  • prettier配置
  • 【基于OpenEuler国产操作系统大数据实验环境搭建】
  • 期末软件经济学
  • 滑动窗口算法专题
  • 基于Java的世界时区自动计算及时间生成方法
  • Excel + Notepad + CMD 命令行批量修改文件名
  • OpenGL 几何着色器高级应用
  • 【Unity基础】Unity 2D实现拖拽功能的10种方法
  • duxapp中兼容多端的 BoxShadow 阴影组件
  • 服务器---centos上安装docker并使用docker配置jenkins
  • Linux系统操作03|chmod、vim
  • 数据库同步中间件DBSyncer安装配置及使用
  • 虚幻5描边轮廓材质
  • ISP帳戶會記錄什麼資訊?
  • Facebook如何避免因IP变动而封号?实用指南
  • EXCEL数据清洗的几个功能总结备忘
  • web网页连接MQTT,显示数据与下发控制命令
  • 数据结构day3作业
  • Android SDK 平台工具版本说明
  • Sharding-jdbc基本使用步骤以及执行原理剖析
  • mysql重置root密码(适用于5.7和8.0)
  • Linux下SVN客户端保存账号密码