Javascript ES6代理简介

介绍javascript es6代理

在ES6标准中引入的新功能ØNE是代理对象。 Proxy对象用于定义基本操作的自定义行为(例如,属性查找,赋值,枚举,函数调用等)。

您可能很快会在这里遇到一些陌生的术语/概念,我建议您继续尝试一下,因为代理概念实际上非常简单且有用。

在继续之前,我们需要定义3个关键术语:

  • handler —包含陷阱的占位符对象
  • 陷阱 —提供属性访问的方法
  • 目标 —代理虚拟化的对象

在此处查看所有可用陷阱的列表

因此,让我们看一些示例和实际应用。

句法

以下是代理语法的示例,其中我们传入一个目标 (在这种情况下为空对象)和一个处理程序

代理语法

通用对象属性查找行为

通用对象属性查找行为

在上面的代码段中,我们有一个带有2个键的简单对象( reasoncode )。 请注意,控制台日志在第7行和第8行返回键值。 然后注意第9行的正常行为。我们尝试检索一个不存在的密钥( beer ),因此我们收到未定义的密钥

代理对象属性查找行为

代理对象查找行为

此代码段中还有更多内容。 我们定义使用GET陷阱的处理程序(第3行)。 处理程序将目标和请求的密钥名称传递到陷阱中。 第11行包含与我们的“公共对象查找”示例相同的对象。 我们的代理在第16行实例化。

注意第18和19行上的控制台日志将返回预期的键值。 但是,请从第20行的日志中查看规则- “键不存在”。

我们已经使用自定义代理覆盖了该操作的默认行为。

使用代理进行价值验证

进行价值验证的代理

在此代码段中,我们在第4行上定义了处理程序 。然后,检查以确保年龄属性是所设置的属性,如果是,则对类型和可接受的值范围进行验证。 如果验证失败,则会传递自定义错误消息。 否则,在第16行,我们设置新的prop值,并返回true表示设置成功的prop值。 没什么

代理有许多实际应用

  • 验证
  • 值校正
  • 属性查询扩展
  • 跟踪属性访问
  • 可撤销的参考
  • 在javascript中实现DOM

这就是ES6中的代理服务器。 在Twitter上让我们知道您的想法和问题。 坚持下去。

如果您喜欢这篇文章,请推荐并分享以帮助其他人找到它!

From: https://hackernoon.com/introducing-javascript-es6-proxies-1327419ab413

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值