• Reflect的详解及用法


    Reflect的解释及用法:

    首先上来想多说几句,就是前几天看见自己一直订阅的博客发了一个文章,说如何写出一篇垃圾的博文,说的我觉得很有道理,就是有些人在发的时候,基本上就是全抄,但是抄也没事, 至少你要写清楚,保证你写的是对的,更不要上面写了很多但是没有突出重点,什么东西都没有介绍。这样你自己在看的时候什么都没有看清楚。我觉得这个就是基本的原则问题了吧。然后呢 我就在想自己的写的什么样子。我觉得很多我也是参考别人的,会去照着官方解释文档 按照自己的理解的去写出来 记录下来,照着测试一下看看是什么样子的情况,最后放上去。其实很多也是在抄,但是话又说回来了只要这个博客有用,介绍了具体的内容,我就觉得就可以吧。毕竟每个人的水平不一样吗,写底层的文章和介绍使用方法的肯定不是一个层面的吧。所以吗 只要你能写的正确,条理清晰,就可以。

    Reflect的简介:

    首先这个概念是ES6提出来的,为了操作对象而提供的API ,以下的熟知
    Reflect对象是一个全局的普通的对象。Reflect的原型就是Object.

    1. 将Object对象的一些明显属于语言内部的方法(比如Obejcet.defineProperty),放到Reflect对象上。现阶段,某些方法同时在Object喝Reflect对象上部署,未来的新方法将只部署在Reflect对象上。也就是说,从reflect对象上可以拿到语言内部的方法。

    2. 在使用Object.defineProperty(obj,name,desc)在无法定义属性时,会抛出一个错误,而Reflect.defineProperty(obj,name,desc)则会返回false。

    3. 让Object操作都变成函数行为。某些Object操作是命令式,比如name in obj和delete obj[name],而Reflect.has(obj,name)和Reflect.deleteProperty(obj,name)让它们变成了函数行为。

    4. Reflect对象的方法与Proxy对象的方法一一对应,只要是Proxy对象的方法,就能在Reflect对象上找到对应的方法。这就让Proxy对象可以方便地调用对应的Reflect方法,完成默认行为,作为修改行为的基础。也就是说,不管Proxy怎么修改默认行为,你总可以在Reflect上获取默认行为。
    在这里插入图片描述
    操作的方法: 总共就13个 继承了Object 来进行相应的操作
    在这里插入图片描述
    1 上面这些方法的作用大部分与Object对象的同名方法都是相同的,与Proxy对象的方法一一对应的。我就稍微写用法

    2 .在拦截处理数据的时候 ,建议就是使用Reflect来进行操作,13个方法在API文档里面都很清楚,用到去查
    https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Reflect
    举例子:
    获取对象中是否存在某一个值

    var objDemo = {name: 'smallTanks', job: 'web'};
    console.log(Reflect.has(objDemo , 'name'));
    
    //输出--- true
    

    获取数组中的最大值

    var arr = [2, 5, 6, 9, 11];
    console.log(Reflect.apply(Math.max, Math, arr));   
    // 输出--- 11
    
    咫尺远近却无法靠近的那个你,才敢让你发觉你并不孤寂
  • 相关阅读:
    安全体系(一)—— DES算法详解
    Windows下将gvim8配置为Python IDE
    SSH原理记录
    Spring Cloud 注册中心Eureka
    Spring Cloud 声明式服务调用 Feign
    Spring Cloud 客服端负载均衡 Ribbon
    Http服务器实现文件上传与下载(四)
    1.项目优化
    分支的创建与代码的推送——提交用户列表功能代码
    主页Header布局
  • 原文地址:https://www.cnblogs.com/tcz1018/p/14738943.html
Copyright © 2020-2023  润新知