ES6系列之Reflect

本文介绍了ES6中的Reflect API,包括它的设计目的和一系列操作对象的函数,如get、set、has、deleteProperty等,强调了Reflect与Proxy的关系,以及如何通过Reflect实现对对象属性的精细控制。
摘要由CSDN通过智能技术生成

一、简介

1.1 什么是Reflect

为操作对象而提供的新API

1.2 为什么要设计Reflect

  1. Object对象的属于语言内部的方法放到Reflect对象上,即从Reflect对象上拿Object对象内部方法
  2. 将用老Object方法报错的情况,改为返回false
// 旧写法
try {
  Object.defineProperty(target, property, attributes);
  // success
} catch (e) {
  // failure
}
// 新写法
if (Reflect.defineProperty(target, property, attributes)) {
  // success
} else {
  // failure
}
  1. Object操作变成函数行为
// 旧写法
'name' in Object //true
// 新写法
Reflect.has(Object,'name') //true
  1. ReflectProxy是相辅相成的,在Proxy上有的方法,在Reflect就一定有
let target={}
let handler={
  set(target,proName,proValue,receiver){
    //确认对象的属性赋值成功
    let isSuccess=Reflect.set(target,proName,proValue,receiver)
    if(isSuccess){
      console.log("成功")
    }
    return isSuccess
  }
}
let proxy=new Proxy(target,handler)

确保对象的属性能正确赋值,广义上讲,即确保对象的原生行为能够正常进行,这就是Reflect的作用

二、Reflect的API

注:和Proxy</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值