Reflect的用法赶紧学起来
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的用法赶紧学起来相关推荐
- 微信的常用设备 只能看到android,安卓手机撤回的微信图片可以查看啦,赶紧学起来...
原标题:安卓手机撤回的微信图片可以查看啦,赶紧学起来 想必每个人的手机上都安装了微信软件吧,微信上的功能在不断的完善,使用微信的用户群体也在不断壮大.想必大家都经历过在使用微信时经常会有好友撤回消息的 ...
- 每日一个小技巧:如何去水印而不损图片?赶紧学起来
在数码时代中,照片的处理与分享已经成为了我们日常中不可或缺的一部分.但是,大家在网上保存的图片常常会带有水印,非常影响图片的观赏性.水印旨在防止照片被盗用或侵权,但有时候它也很破坏照片的美感,因此许多 ...
- MySQL好多按键灰的_键盘太多灰了怎么办?教你几招清理键盘的小妙招,赶紧学起来~...
原标题:键盘太多灰了怎么办?教你几招清理键盘的小妙招,赶紧学起来~ 电脑键盘灰尘太多, 想清理又不知道从何下手, 害怕清理的时候弄坏键盘...... 别急!这就来给你支几招! 电脑长时间没有清洗,键盘 ...
- 小米系统通知服务器,小米系统的通知栏和状态栏原来有这么多用法,学到了,实用!...
原标题:小米系统的通知栏和状态栏原来有这么多用法,学到了,实用! 在使用手机的过程中,通知栏和状态栏应该是查看次数最多的pattern了吧,不过可能大部分人也只是查看里面的内容等,关于它的一些操作估计 ...
- 你还不会用CAD一键布置停车位?赶紧学起来!
在设计CAD建筑图的过程中,你还在一个一个地画停车位吗?那未免也太低效了吧!今天,小编用浩辰CAD建筑软件来教大家一键布置停车位,赶紧学起来吧! 浩辰CAD建筑软件是行业应用最广泛的创新型建筑设计专业 ...
- 办公技巧:Excel下拉菜单小技巧,赶紧学一下!
今天小编给大家分享一个Excel下拉菜单的制作技巧,赶紧来学一下吧. 先来看常规的下拉菜单制作方法: 在制作下拉菜单时,序列来源只能是单行或单列的区域. 下面这个表格里,数据源是多行多列的,怎么办呢? ...
- 前端新宠 Svelte 带来哪些新思想?赶紧学起来!
本文介绍 点赞 + 关注 + 收藏 = 学会了 Svelte[1] 是我用过最爽的框架,就算 Vue 和 React 再强大,生态再好,我还是更喜欢 Svelte,因为它开发起来真的很爽. 其实在很久 ...
- 一份你女朋友都能读懂的 Git 教程,还不赶紧学起来!
点击上方"IT平头哥联盟",选择"置顶或者星标" 你的关注意义重大! 用游戏的方式来学习,是一种有趣而高效的方式. 从刚接触电脑时的打字练习软件 金山打字通,到 ...
- 做最轻量级的数据库中间层,赶紧学起来
饿了么一面(Java) hashmap源码问题 HashMap底层结构 put操作讲一下 HashMap.HashMap如何保证线程安全.ConcurrentHashMap JVM有哪些回收算法,对应 ...
最新文章
- php的POSIX 函数以及进程测试
- 第2条 遇到多个构造器参数时要考虑构建器
- Spring junit测试
- mock以及特殊场景下对mock数据的处理
- 转:优秀程序员的45个习惯
- 滚动到div的底部?
- maven中引用JDK中的tools jar
- 七日掌握设计配色基础pdf_零基础到底该如何学习室内设计!怎么才能掌握核心知识!...
- 史上最全法则、效应大全,看一遍受用终身!
- 阿尔卑斯山时间规划法精髓(提高工作效率)
- CISCO ISIS
- 21cn企业邮箱服务器端口号,21cn企业邮箱手机客户端设置--Android
- inflect java_在native线程利用JNI 反射自定义类
- p3.第一章 Python基础入门 -- Python编程基本概念 (三)
- 关于Android高德地图路线规划的学习
- 抖音图像修复背后技术——CVPR2021多阶段图像修复框架(附github源码下载)
- 第 5 章 book / article
- 【小程序】投票抽奖助手多开版本4.5.31 投票详情页面的奖品优化
- 基于ssm开发得微信小程序社区管理系统
- 计算机毕业论文基于springboot幼儿园管理系统
热门文章
- 手机python编程文件如何转文档_(转)Python之文件读写
- 记一次CPU突然飙升到 100% 问题排查
- snort mysql_snort 数据库
- SpringBoot第一个程序
- java语言之Cloneable接口
- Linux—教你如何高效的批量网络装机
- 基于主成分分析 沪深300个股一致性IF股指交易策略
- “我只警告一次,下次我会直接忽略你发的垃圾,懂?”Linus 精彩炮轰语录集锦
- 机器学习笔记:常用数据集之scikit-learn内置玩具数据集
- Python一看就懂系列(三)