说明

image.png
image.png

image.png

和Object相似的操作方法

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Reflect/Comparing_Reflect_and_Object_methods

常见的操作

image.png
image.png
image.png

应用场景

1、和Proxy代理配合使用

Proxy代理 设置捕获器时,用反射代替,同时反射会返回操作结果(true,false),告诉你操作是否成功
image.png
image.png

2、代替Object进行一些常规操作

Reflect 的出现就是想规范化Object的一些操作,说不定后面的规划会把Object的某些方法删掉

3、改变new实例的类型

  1. function Person() {
  2. this.type = 'Person';
  3. }
  4. function Teacher() {
  5. this.type = 'Teacher';
  6. }
  7. // 创建一个对象,用的是Person的构造函数,但是最终改变类型,改变了实例的原型
  8. var teacher1 = Reflect.construct(Person, [], Teacher);
  9. console.log(teacher1) // 类型是Teacher {this.type = 'Person';}
  10. console.log(teacher1.__proto__) // Teacher()