说明
和Object相似的操作方法
常见的操作
应用场景
1、和Proxy代理配合使用
给 Proxy代理 设置捕获器时,用反射代替,同时反射会返回操作结果(true,false),告诉你操作是否成功
2、代替Object进行一些常规操作
Reflect 的出现就是想规范化Object的一些操作,说不定后面的规划会把Object的某些方法删掉
3、改变new实例的类型
function Person() {
this.type = 'Person';
}
function Teacher() {
this.type = 'Teacher';
}
// 创建一个对象,用的是Person的构造函数,但是最终改变类型,改变了实例的原型
var teacher1 = Reflect.construct(Person, [], Teacher);
console.log(teacher1) // 类型是Teacher {this.type = 'Person';}
console.log(teacher1.__proto__) // Teacher()