zoukankan      html  css  js  c++  java
  • js reflect

    Reflect对象的设计目的
    1.将Object对象的一些明显属于语言内部的方法(比如Object.defineProperty),放到Reflect对象上。现阶段,某些方法同时在Object和Reflect对象上部署,未来的新方法将只部署在Reflect对象上。也就是说,从Reflect对象上可以拿到语言内部的方法。
    2.修改某些Object方法的返回结果,让其变得更合理。
    3.让Object操作都变成函数行为
    4.Reflect对象的方法与Proxy对象的方法一一对应

     Reflect 13 个静态方法

    Reflect.get(target, name, receiver) 查找并返回target对象的name属性,receiver绑定this
    Reflect.set(target, name, value, receiver) 设置target对象的name属性等于value
    Reflect.has(obj, name) 方法对应name in obj里面的in运算符
    Reflect.deleteProperty(obj, name) 方法等同于delete obj[name],用于删除对象的属性。
    Reflect.construct(target, args) 等同于new target(...args),调用构造函数的方法。
    Reflect.getPrototypeOf(obj) 读取对象的__proto__属性,对应Object.getPrototypeOf
    Reflect.setPrototypeOf(obj, newProto) 设置目标对象的原型 对应Object.setPrototypeOf
    Reflect.apply(func, thisArg, args) 等同于Function.prototype.apply.call(func, thisArg, args)
    Reflect.defineProperty(target, propertyKey, attributes) 等同于Object.defineProperty
    Reflect.getOwnPropertyDescriptor(target, propertyKey) 等同于Object.getOwnPropertyDescriptor
    Reflect.isExtensible (target) 对应Object.isExtensible 表示当前对象是否可扩展。
    Reflect.preventExtensions(target) 对应Object.preventExtensions 让一个对象变为不可扩展
    Reflect.ownKeys (target) 返回对象的所有属性,可以返回Symbol类型
  • 相关阅读:
    C++中的异常
    Hadoop YARN介绍
    js处理层级数据结构的一些总结
    Python数据结构
    Python的编码风格
    Python流程控制
    java中面试可能会问的问题
    深度学习
    Pescal Triangle Two
    Pascal Triangle
  • 原文地址:https://www.cnblogs.com/angdh/p/14998604.html
Copyright © 2011-2022 走看看