JavaScript中Reflect的详细介绍(附示例)

本篇文章给大家带来的内容是关于JavaScript中Reflect的详细介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

Reflect 是一个内置的对象,它提供可拦截JavaScript操作的方法。方法与代理处理程序的方法相同。Reflect 不是一个函数对象,因此它是不可构造的。

    new Reflect() //错误的写法

登录后复制

Reflect使用
Reflect提供了一些静态方法,静态方法是指只能通过对象自身访问的的方法
1、Reflect.apply()
2、Reflect.construct()
3、Reflect.defineProperty()
4、Reflect.deleteProperty()
5、Reflect.enumerate()
6、Reflect.get()
7、Reflect.getOwnPropertyDescriptor()
8、Reflect.getPrototypeOf()
9、Reflect.has()
10、Reflect.isExtensible()
11、Reflect.ownKeys()
12、Reflect.preventExtensions()
13、Reflect.set()
14、Reflect.setPrototypeOf()

静态方法的使用:
demo1:使用Reflect.get()获取目标对象指定key的value。

立即学习“Java免费学习笔记(深入)”;

let obj = {    a: 1};let s1 = Reflect.get(obj, "a")console.log(s1) // 1

登录后复制

demo1的get()方法,拦截obj对象,然后读取key为a的值。当然,不用Reflect也可以读取a的值。

demo2:使用Reflect.apply给目标函数floor传入指定的参数。

const s2 = Reflect.apply(Math.floor, undefined, [1.75]); console.log(s2) // 1/ /Reflect.apply()提供了3个参数,// 第一个参数是反射的函数,后面2个参数才是和数组的apply一致。

登录后复制

demo2的例子我们可以理解成是拦截了Math.floor方法,然后传入参数,将返回值赋值给s2,这样我们就能在需要读取这个返回值的时候调用s2。

demo3:使用Reflect.ownKeys获取对象的keys

    console.log(Reflect.ownKeys({"a":0,"b":1,"c":2,"d":3})); //输出 :["a", "b", "c", "d"]    console.log(Reflect.ownKeys([])); // ["length"]          var sym = Symbol.for("comet");          var sym2 = Symbol.for("meteor");          var obj = {        [sym]: 0, "str": 0, "773": 0, "0": 0,              [sym2]: 0, "-1": 0, "8": 0, "second str": 0    };          Reflect.ownKeys(obj);     //输出:/ [ "0", "8", "773", "str", "-1", "second str", Symbol(comet), Symbol(meteor) ]

登录后复制

Reflect.ownKeys的排序是根据: 先显示数字, 数字根据大小排序,然后是 字符串根据插入的顺序排序

以上就是JavaScript中Reflect的详细介绍(附示例)的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2735592.html

(0)
上一篇 2025年3月8日 01:16:53
下一篇 2025年3月8日 01:17:02

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • JavaScript中import的详解(附示例)

    本篇文章给大家带来的内容是关于javascript中import的详解(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 import 语句用于导入由另一个模块导出的绑定。无论是否声明了 strict mode,导入…

    编程技术 2025年3月8日
    100
  • redux的核心讲解(代码示例)

    本篇文章给大家带来的内容是关于redux的核心讲解(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 概念 redux是一种架构模式,可以和react、vue结合使用。 解决的问题 优雅地修改共享数据状态,避免状态…

    2025年3月8日
    200
  • Vue封装ajax的代码示例详解

    本篇文章给大家带来的内容是关于vue封装ajax的代码示例详解,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 HTML文件: Document 点击获取信息 {{ msg }} var vm=new Vue({ el: “…

    编程技术 2025年3月8日
    200
  • JavaScrip的常见面试题及答案总结

    本篇文章给大家带来的内容是关于javascrip的常见面试题及答案总结,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。 一、请解释 JavaScript 中 this 是如何工作的。 首先:this 永远指向函数运行时所在的…

    编程技术 2025年3月8日
    200
  • JavaScript中let、var和const的区别及应用场景的介绍

    在javascript中,建议在使用变量和常量时声明变量名称(下面统称为“变量”)。var,let和const是在javascript中声明变量时使用的关键字,其中,let和const是ecmascript 2015采用的新声明方法的关键字…

    2025年3月8日
    200
  • JavaScript的历史对象是什么

    javascript的历史对象是 window 对象的一部分,表示用户访问过的url的数组集合;它是用来保存着用户上网的历史历史,从窗口被打开的那一刻算起。 本篇文章给大家介绍JavaScript的历史对象,让大家对History对象有一个…

    2025年3月8日
    200
  • JavaScript提供的Cookie属性有哪些

    javascript提供的cookie属性有:expires属性(声明cookie的到期时间),max-age属性(声明cookie活动的最大时间),domain属性(定义有效域名),path属性。 Cookie是什么? Cookie是服务…

    2025年3月8日
    200
  • JavaScript 提升(Hoisting)是什么

    hoisting是javascript 中的一种机制,它可以将变量和函数的声明移到最顶部;让我们可以在声明它们之前使用变量和函数,也就是说:让变量和函数可以先使用再声明。 本篇文章就给大家介绍JavaScript的提升机制(Hoisting…

    2025年3月8日 编程技术
    200
  • javascript如何执行调试

    javascript中执行调试的方法有:1、使用console.log()方法调试,该方法可以将结果显示在浏览器的控制台中;2、通过关键字“debugger”设置断点来逐步检查每行代码。 本文操作环境:windows7系统,DELL G3电…

    2025年3月8日 编程技术
    200
  • 在JavaScript中如何创建对象

    对象是属性的集合,变量数组也是一种对象,对象可用于管理数据,属性就是添加了以名称(属性名称)为前缀的特定名称(值),本篇文章我们就来详细介绍一下javascript对象的用法。 我们先来看如何创建一个对象 创建一个traffic_light…

    2025年3月8日 编程技术
    200

发表回复

登录后才能评论