js reflect

 

 

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类型

 

js reflect

上一篇:webpack(6)webpack处理图片


下一篇:css列表属性和样式控制