浅谈ES6之Proxy与Reflect

Proxy

在你封装框架时会用到Proxy,平常几乎用不到。proxy在目标对象的外层搭建了一层拦截,外界对目标对象的某些操作,必须通过这层拦截。

var proxy = new Proxy(target, handler);
new Proxy()表示生成一个Proxy实例,target参数表示所要拦截的目标对象,handler参数也是一个对象,用来定制拦截行为。

对于代理模式 Proxy 的作用主要体现在三个方面:

1.拦截和监视外部对对象的访问
2 .降低函数或类的复杂度
3 .在复杂操作前对操作进行校验或对所需资源进行管理

Reflect

1、什么是Reflect?
为操作对象而提供的新API.

2、为什么要设计Reflect?
(1)将Object对象的属于语言内部的方法放到Reflect对象上,即从Reflect对象上拿Object对象内部方法。
(2)将用 老Object方法 报错的情况,改为返回false

老写法
在这里插入图片描述
新写法
在这里插入图片描述
(3)让Object操作变成函数行为

老写法(命令式写法)
‘name’ in Object //true

新写法
Reflect.has(Object,‘name’) //true

(4)Reflect与Proxy是相辅相成的,在Proxy上有的方法,在Reflect就一定有
在这里插入图片描述
确保对象的属性能正确赋值,广义上讲,即确保对象的原生行为能够正常进行,这就是Reflect的作用.

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值