Reflect

1、让属于语言内部的方法,写在Relect,整理。

2、让命令形式改为方法的形式,如dele obj.name(Reflect.deleteProperty(obj,name))、name in obj(Relect.has(obj,name))。

3、让返回合理些Object.defineProperty(obj, name, desc)在无法定义属性时,会抛出一个错误,而Reflect.defineProperty(obj, name, desc)则会返回false。

4、让Reflect跟proxy一一对应。

Reflect.set(obj,name,value,receiver) receiver可省略,一般用在setter函数中绑定this =>1 

Reflect.get(obj,name,value,receiver)receiver可省略,一般用在getter函数中绑定this =>2 如果没有属性就返回undefined

Reflect.has(obj,name)对应 name in obj =>3 true false

Reflect.deleProperty(obj,name) 删除属性  dele obj.name =>4 如果删除成功,或者被删除的属性不存在,返回true,否则flase

Reflect.setPrototypeOf(obj,obj._pro_) =>5

Reflect.setPrototypeOf(obj) =>6

Reflect.getOwnPropertyDescriptor(obj, name) =>7

Reflect.defineProperty(obj, name, desc) =>8

Reflect.ownKeys(obj) 返回的是hasOwnProperty和symbol中属性 =>9

Reflect.isExtensiable(obj) 返回是否可扩展 true fales =>10

Reflect.preventExtension(obj)然obj不可扩展 =>11

Reflect.construct(obj,参数) 原来 new obj(参数) =>12

Reflect.apply(func, thisArg, args)

Reflect.apply方法等同于Function.prototype.apply.call(func, thisArg, args),用于绑定this对象后执行给定函数。

Reflect.getOwnPropertyDescriptor()

如果obj不是对象会报错的都会

posted @ 2020-09-20 23:43  无用之美  阅读(99)  评论(0编辑  收藏  举报