• Reflect对象


    一.Reflect对象基础

    Reflect对象是ES6出现的新的API,用于操作对象内部的方法。

    特点:

    1. 对于操作有明确的返回结果。如返回布尔值表示操作成功与否

    2. 和Proxy的拦截方法一一对应,实现操作的默认行为

    3.将in,delete,new等命令,用方法实现

    4.该对象的方法将逐渐取代Object上的方法

    二.静态方法

    和Proxy的拦截方法一一对应,一共有13个方法;

    所有方法的第一个参数都必须是对象。否则报错。

    返回布尔值的方法有:

    1. Reflect.set(target,propKey, value, receiver)

    target[propKey] = value; // 操作是否成功

    如果传入receiver,则this指向receiver

    2. Reflect.has(target, propKey)

    propKey in target

    3. Reflect.deleteProperty(target, propKey)

    delete target[propKey] // 操作是否成功

    4. Reflect.setPrototypeOf(target, proto)

    target.__proto__ = proto; // 操作是否成功

    5. Reflect.defineProperty(target, propKey, propDescriotor)

    Object.defineProperty(target, propKey, propDescriptor)//操作是否成功

    6. Reflect.isExtensible(target)

    Object.isExtensible(target)

    7.Reflect.preventExtensions(target)

    Object.preventExtensions(target)// 返回操作是否成功

    返回非布尔值的方法有:

    1. Reflect.get(target, propKey,receiver)

    target[propKey]

    1.如果方法中传入了receiver参数,那么,如果getter方法中有this,this指向receiver

    2.如果不存在,返回undefined

    2. Reflect.construct(Target, args)

    new Target(...args)

    3. Reflect.getPrototypeOf(target)

    target.__proto__

    4. Reflect.apply(fn, thisArg, args)

    Function.prototype.apply.call(target, thisArg, args);

    5. Reflect.getOwnPropertyDescriptor(target, propKey)

    Object.getOwnPropertyDescriptor(target, propKey)

    6.Reflect.ownKeys(target)

    Object.getOwnPropertyNames(target) +
    Object.getOwnPropertySymbols(target)
  • 相关阅读:
    快速搭建一个本地的FTP服务器
    Node.js安装及环境配置之Windows篇
    在win10上安装oracle10g
    win10安装oracle11g客户端
    解决:Java source1.6不支持diamond运算符,请使用source 7或更高版本以启用diamond运算符
    idea 右侧 无 meven 菜单
    idea导入maven项目不能识别pom.xml文件解决办法
    PostgresSQL客户端pgAdmin4使用
    PostgreSQL 创建数据库
    PostgreSQL 数据类型
  • 原文地址:https://www.cnblogs.com/lyraLee/p/11774842.html
Copyright © 2020-2023  润新知