JavaScript ES6的Reflect(反射)使用说明

JavaScript ES6的Reflect(反射)使用说明
  • 查找并返回 target 对象的 name 属性。

    Reflect.get(target, name, receiver)
    
  • 将 target 的 name 属性设置为 value。返回值为 boolean ,true 表示修改成功,false 表示失败。当 target 为不存在的对象时,会报错

Reflect.set(target, name, value, receiver)
  • 是 name in obj 指令的函数化,用于查找 name 属性在 obj 对象中是否存在。返回值为 boolean。如果 obj 不是对象则会报错 TypeError。
Reflect.deleteProperty(obj, property)
  • 等同于 new target(…args)。

    Reflect.construct(obj, args)
    
  • 用于读取 obj 的 proto 属性。在 obj 不是对象时不会像 Object 一样把 obj 转为对象,而是会报错。

    Reflect.getPrototypeOf(obj)
    
  • 用于设置目标对象的 prototype。

    Reflect.setPrototypeOf(obj, newProto)
    
  • 等同于 Function.prototype.apply.call(func, thisArg, args) 。func 表示目标函数;thisArg 表示目标函数绑定的 this 对象;args 表示目标函数调用时传入的参数列表,可以是数组或类似数组的对象。若目标函数无法调用,会抛出 TypeError 。

    Reflect.apply(func, thisArg, args)
    
  • 用于为目标对象定义属性。如果 target 不是对象,会抛出错误。

    Reflect.defineProperty(target, propertyKey, attributes)
    
  • 用于得到 target 对象的 propertyKey 属性的描述对象。在 target 不是对象时,会抛出错误表示参数非法,不会将非对象转换为对象。

    Reflect.getOwnPropertyDescriptor(target, propertyKey)
    
  • 用于判断 target 对象是否可扩展。返回值为 boolean 。如果 target 参数不是对象,会抛出错误。

     Reflect.isExtensible(target)
    
  • 用于让 target 对象变为不可扩展。如果 target 参数不是对象,会抛出错误。

    Reflect.preventExtensions(target)
    
  • 用于返回 target 对象的所有属性,等同于 Object.getOwnPropertyNames 与Object.getOwnPropertySymbols 之和。

  • Reflect.ownKeys(target)
    

查看例子,官网地址:https://www.runoob.com/w3cnote/es6-reflect-proxy.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值