es6反射

Reflect

ES6中将Object的一些明显属于语言内部的方法移植到了Reflect对象上。

Reflect不是函数对象,所以不可构造(不可以用new运算符)。
也不能将Reflect对象作为一个函数来调用(Reflect())。

Reflect的所有成员都是静态的(类似于Math对象)。
Reflect对象提供以下13个静态函数,他们具有与处理器对象handler的方法相同的名称(一一对应)。
这些方法中的一些与Object上的方法相同。
Object的方法参数为object,而Reflect的方法参数为target- ,表示操作目标。

Reflect.getPrototypeOf(target) 获取target的原型

Reflect.setPrototypeOf(target, prototype) 设置target的原型

Reflect.isExtensible(target) target是否可扩展

Reflect.preventExtensions(target) 阻止target的扩展性

Reflect.getOwnPropertyDescriptor(target, prop) 获取target的属性prop的描述器

Reflect.defineProperty(target, property, descriptor) 修改target的属性property为descriptor值

Reflect.has(target, prop) target是否有属性prop

Reflect.get(target, property, receiver) 读属性

Reflect.set(target, property, value, receiver) 写属性

Reflect.deleteProperty(target, property) 删除target的属性property

Reflect.ownKeys(target) 返回包含所有自身属性(继承的不算)的数组

Reflect.apply(target, thisArg, argumentsList) 对函数target进行调用操作,可传入thisArg可数组作为调用时的参数。

Reflect.construct(target, argumentsList, newTarget) 对构造函数进行new操作,即实例化。

和 Object 中等价的 Reflect 反射方法同时也提供了更有意义的返回值。比如,Reflect.defineProperty方法返回一个布尔值,表示属性是否被成功定义;而对应的Object.defineProperty则返回其首个参数中接收到的对象 -- 这并不是很有

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值