ES6新特性 反射 Reflect

Reflect

ES6中将Object的一些明显属于语言内部的方法移植到了Reflect对象上。
(现阶段,为确保前后兼容性,某些方法会同时存在于Object和Reflect对象上)

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

Reflect的所有成员都是静态的(类似于Math对象)。

API

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操作,即实例化。

link

JS中Proxy对象的handler参数详解

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值