JavaScript Proxy代理

2021-04-05  本文已影响0人  魂斗驴

代理是javascript中的一个对象,它包装了一个对象或函数,并通过称为target的对象对其进行监视。与包装对象或函数的存在无关。代理类似于其他语言中的元编程。

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

  1. target: 要代理的对象或功能。
  2. handler: 对代理的对象或函数执行某些操作的函数。
  3. trap: 这些是用于target的一些功能。单击此处以了解有关trap的更多信息。

下面是我们的定义方式

我们使用ES6中的Proxy Class作为参数,target是包装对象,handler将是使用trap对target执行某些操作的函数。

以下是其用法的简单示例

代理的基本示例

我们使2个对象分别称为target和handler,target是具有message键的简单对象,而handler是具有get和与其关联的功能的对象。我们在代理类中传递2个对象,然后返回一个代理对象,通过它我们可以访问target对象的message属性。

这是一个如何使用它来验证对象值的小例子

我们使用一个空对象作为target对象,并使用一个在target对象上设置trap并进行验证的handler。很简单吧!

让我们研究一下如何使用它来进行API call wrapper

我们使用过axios,然后使用基本URL创建了一个实例,为代理创建了一个handler,该handler返回要使用的get,post,put,delete,patch函数的对象,最后制作了一个API对象,该对象是将对象代理到空对象target。

然后我们可以将其用作:

调用API代理对象

这可以扩展为进行验证,值校正,跟踪属性访问,有关未知属性的警告,否定数组索引,数据绑定,访问宁静的Web服务(方法调用),可撤消引用,监视异步功能,类型检查以及更多内容,

我个人发现javascript代理在restful 的Web服务,验证,监视异步功能中非常有用。

参考

Javascript — Proxy

上一篇 下一篇

猜你喜欢

热点阅读