Reflect对象一共哟13个静态方法

  1. Reflect.apply(target, thisArg, args)       // target 方法里this 指向  thisArg,args 参数数组

  2. Reflect.construct(target, args)  //  target 构造函数 atgs 参数  = new trage(...args)

  3. Reflect.get(target, name, receiver)   //   Reflect.get 方法查找并返回 target 对象的 name 属性,如果没有该属性,则返回 undefined,如果name属性部署了读取函数(getter),则读取函数的this绑定 receiver

  4. Reflect.set(target, name, value, receiver)   //   Reflect.set 方法查找并返回 target 对象的 name 属性,如果没有该属性,则返回 undefined,如果name属性部署了读取函数(getter),则读取函数的this绑定 receiver

  5. Reflect.defineProperty(target, name, desc)  // const obj = {}
    //数据描述符
    Object.defineProperty(obj, "a", {
      value : 1,//可选,默认undefined ,可以是任何数据类型
      writable : false,//可选,默认false,该属性的value是否能被赋值运算符改变
      configurable : true,//可选,默认为false 该属性描述符是否可配置 
      enumerable : false//可选,默认false 该属性是否在被遍历时显示
    })
     

  6. Reflect.deleteProperty(target, name) // Reflect.deleteProperty方法等同于delete obj[name],用于删除对象的属性

  7. Reflect.has(target, name)  // Reflect.has方法对应name in obj里面的in运算符

  8. Reflect.ownKeys(target) // Reflect.ownKeys方法用于返回对象的所有属性,基本等同于   Object.getOwnPropertyNamesObject.getOwnPropertySymbols之和

  9. Reflect.isExtensible(target) // 方法对应Object.isExtensible,返回一个布尔值,表示当前对象是否可扩展。

  10. Reflect.preventExtensions(target)   // 用于让一个对象变为不可扩展。它返回一个布尔值,表示是否操作成功。

  11. Reflect.getOwnPropertyDescriptor(target, name)  //  用于得到指定属性的描述对象,将来会替代掉后者

  12. Reflect.getPrototypeOf(target) // 方法用于读取对象的__proto__属性,对应

  13. Reflect.setPrototypeOf(target, prototype)  // 方法用于设置目标对象的原型(prototype)

 

上一篇:反射学习总结


下一篇:反射机制