ES6 新特性之 Reflect

Reflect是一个内置对象,提供拦截JavaScript操作的方法,包括get、set、has、deleteProperty等静态方法。它与Proxy配合使用,能实现对对象属性的操作,如定义属性、获取属性描述、检查对象是否可扩展等。Reflect为JavaScript提供了更符合函数式编程的风格,且所有方法均为静态。
摘要由CSDN通过智能技术生成

基本概念

reflect是一个内置的对象,提供了拦截JavaScript操作的方法(主要作用)。它将部分属于语言内部的方法转移到reflect上去,比如defineProperty。优化了一部分函数的返回结果,它的风格上倾向于函数式编程,保留对象的默认行为(Proxy),没有构造函数,所有的属性方法都是静态的,类似Math。reflect和Proxy是一一对应的,所有Proxy可以拦截的属性,reflect提供一个默认。。

静态方法

  • get ,取值操作, 不存在返回undefined
      Reflect.get(target, propertyKey[, receiver]);
    
    内部this绑定receiver
    var object1 = {
      a: 1,
      b: 2,
      get c() {
        return this.a + this.b;
      },
    };
    
    var object2 = {
      a: 4,
      b: 4,
    };
    
    Reflect.get(object1, 'c');
    // 3 
    Reflect.get(object1, 'c', object2);
    // 8 
    
  • set,赋值操作
     Reflect.set(target, propertyKey, value[, receiver]);
    
    同get一样,也是内部this绑定receiver。
    var object1 = {
      a: 1,
      set b(value) {
        return this.a = value;
      },
    };
    
    var object2 = {
      a: 0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值