Reflect

文章目录

  • Reflect
  • 前言
  • 为什么用
  • 它主要有以下几个特点:
  • 总结

前言

Reflect 是一个内置的对象,它提供拦截 JavaScript 操作的方法。这些方法与 proxy的方法相同。Reflect 不是一个函数对象,因此它是不可构造的。不能用new对象。


为什么用

Reflect 的所有属性和方法都是静态的(就像 Math 对象)你可以直接用。
Reflect 是 ECMAScript 6 中新增的一个全局对象,提供了一组静态方法,用于支持 JavaScript 的元编程功能。

它主要有以下几个特点:

它拥有与 Object 对象相同的 API,并且反射方法的名称和参数也与对应的 Object 方法相同。所以你可以很容易的上手使用。

使用了Reflect.get 和 Reflect.set 方法来代替原生的对象访问方法。例如:

Reflect.get(target, targetKey)
//获取对象身上某个属性的值,类似于 target[name]。
Reflect.set(target,  targetKey, value)
//设置对象属性,类似于target[name]=value或target.name=value

使用起来很简单。
除了这两个常用的属性方法还有一些定义对象下面是一个使用Reflect.defineProperty()方法来定义一个对象的属性的例子:

const obj = {};
Reflect.defineProperty(obj, 'name', {value: 'test',writable: false
});
console.log(obj.name); // test
obj.name = 'test1'; // TypeError: Cannot assign to read only property 'name' of object '

因为设置了对象属性只读不能写所以不可以修改会报错。

Reflect.apply() apply也是我们在js中调用
例如:
我想直接追加原数组元素可以这么干

const array = ['a', 'b'];
const elements = [0, 1, 2];
array.push.apply(array, elements);
console.info(array); // ["a", "b", 0, 1, 2]

当然也可以用Reflect.apply

function add(a, b) {return a + b;
}
const args = [2, 3];
console.log(Reflect.apply(add, null, args)); // 5

很好理解就是求和。

还有更多好玩的例子可以参考官方文档MDN
链接: MDN.

总结

尤大都在vue3中用了 ,看过源码的同学肯定都见过, 赶紧用起来吧。

Reflect的用法赶紧学起来相关推荐

  1. 微信的常用设备 只能看到android,安卓手机撤回的微信图片可以查看啦,赶紧学起来...

    原标题:安卓手机撤回的微信图片可以查看啦,赶紧学起来 想必每个人的手机上都安装了微信软件吧,微信上的功能在不断的完善,使用微信的用户群体也在不断壮大.想必大家都经历过在使用微信时经常会有好友撤回消息的 ...

  2. 每日一个小技巧:如何去水印而不损图片?赶紧学起来

    在数码时代中,照片的处理与分享已经成为了我们日常中不可或缺的一部分.但是,大家在网上保存的图片常常会带有水印,非常影响图片的观赏性.水印旨在防止照片被盗用或侵权,但有时候它也很破坏照片的美感,因此许多 ...

  3. MySQL好多按键灰的_键盘太多灰了怎么办?教你几招清理键盘的小妙招,赶紧学起来~...

    原标题:键盘太多灰了怎么办?教你几招清理键盘的小妙招,赶紧学起来~ 电脑键盘灰尘太多, 想清理又不知道从何下手, 害怕清理的时候弄坏键盘...... 别急!这就来给你支几招! 电脑长时间没有清洗,键盘 ...

  4. 小米系统通知服务器,小米系统的通知栏和状态栏原来有这么多用法,学到了,实用!...

    原标题:小米系统的通知栏和状态栏原来有这么多用法,学到了,实用! 在使用手机的过程中,通知栏和状态栏应该是查看次数最多的pattern了吧,不过可能大部分人也只是查看里面的内容等,关于它的一些操作估计 ...

  5. 你还不会用CAD一键布置停车位?赶紧学起来!

    在设计CAD建筑图的过程中,你还在一个一个地画停车位吗?那未免也太低效了吧!今天,小编用浩辰CAD建筑软件来教大家一键布置停车位,赶紧学起来吧! 浩辰CAD建筑软件是行业应用最广泛的创新型建筑设计专业 ...

  6. 办公技巧:Excel下拉菜单小技巧,赶紧学一下!

    今天小编给大家分享一个Excel下拉菜单的制作技巧,赶紧来学一下吧. 先来看常规的下拉菜单制作方法: 在制作下拉菜单时,序列来源只能是单行或单列的区域. 下面这个表格里,数据源是多行多列的,怎么办呢? ...

  7. 前端新宠 Svelte 带来哪些新思想?赶紧学起来!

    本文介绍 点赞 + 关注 + 收藏 = 学会了 Svelte[1] 是我用过最爽的框架,就算 Vue 和 React 再强大,生态再好,我还是更喜欢 Svelte,因为它开发起来真的很爽. 其实在很久 ...

  8. 一份你女朋友都能读懂的 Git 教程,还不赶紧学起来!

    点击上方"IT平头哥联盟",选择"置顶或者星标" 你的关注意义重大! 用游戏的方式来学习,是一种有趣而高效的方式. 从刚接触电脑时的打字练习软件 金山打字通,到 ...

  9. 做最轻量级的数据库中间层,赶紧学起来

    饿了么一面(Java) hashmap源码问题 HashMap底层结构 put操作讲一下 HashMap.HashMap如何保证线程安全.ConcurrentHashMap JVM有哪些回收算法,对应 ...

最新文章

  1. php的POSIX 函数以及进程测试
  2. 第2条 遇到多个构造器参数时要考虑构建器
  3. Spring junit测试
  4. mock以及特殊场景下对mock数据的处理
  5. 转:优秀程序员的45个习惯
  6. 滚动到div的底部?
  7. maven中引用JDK中的tools jar
  8. 七日掌握设计配色基础pdf_零基础到底该如何学习室内设计!怎么才能掌握核心知识!...
  9. 史上最全法则、效应大全,看一遍受用终身!
  10. 阿尔卑斯山时间规划法精髓(提高工作效率)
  11. CISCO ISIS
  12. 21cn企业邮箱服务器端口号,21cn企业邮箱手机客户端设置--Android
  13. inflect java_在native线程利用JNI 反射自定义类
  14. p3.第一章 Python基础入门 -- Python编程基本概念 (三)
  15. 关于Android高德地图路线规划的学习
  16. 抖音图像修复背后技术——CVPR2021多阶段图像修复框架(附github源码下载)
  17. 第 5 章 book / article
  18. 【小程序】投票抽奖助手多开版本4.5.31 投票详情页面的奖品优化
  19. 基于ssm开发得微信小程序社区管理系统
  20. 计算机毕业论文基于springboot幼儿园管理系统

热门文章

  1. 手机python编程文件如何转文档_(转)Python之文件读写
  2. 记一次CPU突然飙升到 100% 问题排查
  3. snort mysql_snort 数据库
  4. SpringBoot第一个程序
  5. java语言之Cloneable接口
  6. Linux—教你如何高效的批量网络装机
  7. 基于主成分分析 沪深300个股一致性IF股指交易策略
  8. “我只警告一次,下次我会直接忽略你发的垃圾,懂?”Linus 精彩炮轰语录集锦
  9. 机器学习笔记:常用数据集之scikit-learn内置玩具数据集
  10. Python一看就懂系列(三)