[含泪吐血整理]Reflect对象中的13个静态函数

前言

小伙伴们大家好。前一篇文章中我们学习了ES6中新增的Reflect对象,了解了该对象的一些特点以及设计目的,最后还对该对象上的一些静态方法做了一个简单介绍。接下来将对这些方法进行一个展开分享。

Reflect.get(target, key, receiver)

  • Reflect.get()方法查找并返回target对象中的key属性,如果没有该属性则返回undefined,该与target[key]读取属性类似,但它是通过一个函数执行来操作的。
  • Reflect.get方法接收3个参数:
    • target:需要取值的目标对象
    • key:需要取值的目标对象的属性(键名)
    • receiver:如果目标对象target中指定了getter,则getters在调用时其内部的this将会指向receiver
  • 方法返回值为目标对象中属性对应的值
  • 如果target不是一个Object类型,则会报错
let obj = {
   
	x: 1,
	y: 2,
	get z(){
   
		return this.x + this.y
	}
}
Reflect.get(obj, 'x');// 1
Reflect.get(obj, 'y');// 2
Reflect.get(obj, 'z');// 3
Reflect.get(['one','two'],1);// two
Reflect.get(1, 'name');//报错
let newObj = {
   
	x: 5,
	y: 10
}

Reflect.get(obj, 'z', newObj);//15 obj中指定了getter,则getter中的this指向了第三个参数newObj

Reflect.set(target, key, value, receiver)

  • Reflect.set方法用于给目标对象的属性设置值,类似于target[key] = value。
  • Reflect.set方法接收4个参数:
    • target:要设置值的目标对象
    • key:目标对象中的属性名
    • value:要给属性设置的新值
    • receiver:如果目标对象的属性设置了setter,则setter中的this指向receiver
  • 如果第一个target不是一个Object类型,则会报错
let obj = {
   
	x: 1,
	set y(value){
   
		return this.x = value
	}
}
console.log(obj.x);// 1
Reflect.set(obj, 'x', 10)
console.log(obj
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值