Reflect涌现的目标
1.把Object对象中的一些显著属于言语内部的要领,放到Reflect对象上,比方Object.defineProperty。就是说能够把Reflect对象上能够拿到言语内部的要领。
2.修正某些Object要领的返回效果,让其变得合理。Object.defineProperty(target, property, attributes)在没法定义属性时,会抛出一个毛病,而Reflect.defineProperty(obj,name,desc)则会返回false.
3.让Object操纵变成函数行动。某些Object操纵时敕令式的,比方name in obj和delete obj[name],而Reflect.has(obj,name)和Reflect.deleteProperty(obj, name)让他们变成函数行动。
4.Reflect对象要领与Proxy对象的要领一一对应,只如果Proxy对象的要领,就能在Reflect对象上找到对应的要领。
Reflect中包括的要领
Reflect.apply(target,thisArg,args)
Reflect.construct(target,args)
Reflect.get(target,name,receiver)
Reflect.set(target,name,value,receiver)
Reflect.defineProperty(target,name,desc)
Reflect.deleteProperty(target,name)
Reflect.has(target,name)
Reflect.ownKeys(target)
Reflect.isExtensible(target)
Reflect.preventExtensions(target)
Reflect.getOwnPropertyDescriptor(target, name)
Reflect.getPrototypeOf(target)
Reflect.setPrototypeOf(target, prototype)