使用Proxy代理的方法-创新互联

这篇文章将为大家详细讲解有关使用Proxy代理的方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

创新互联公司专业为企业提供资溪网站建设、资溪做网站、资溪网站设计、资溪网站制作等企业网站建设、网页设计与制作、资溪企业网站模板建站服务,十多年资溪做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

Proxy对象(Proxy)是ES6的一个非常酷却鲜为人知的特性。虽然这个特性存在已久,但是我还是想在本文中对其稍作解释,并用一个例子说明一下它的用法。

使用Proxy代理来调试

为了在实践中展示Proxy的能力,我创建了一个简单的监测库,用来监测给定的对象或类,监测项如下:

函数执行时间

函数的调用者或属性的访问者

统计每个函数或属性的被访问次数。

这是通过在访问任意对象、类、甚至是函数时,调用一个名为proxyTrack的函数来完成的。

如果你希望监测是谁给一个对象的属性赋的值,或者一个函数执行了多久、执行了多少次、谁执行的,这个库将非常有用。我知道可能还有其他更好的工具来实现上面的功能,但是在这里我创建这个库就是为了用一用这个API。

使用proxyTrack代理

首先,我们看看怎么用:

functionMyClass(){}
  MyClass.prototype={
  isPrime:function(){
  constnum=this.num;
  for(vari=2;i<num;i++)
  if(num%i===0)returnfalse;
  returnnum!==1&&num!==0;
  },
  num:null,
  };
  MyClass.prototype.constructor=MyClass;
  consttrackedClass=proxyTrack(MyClass);
  functionstart(){
  constmy=newtrackedClass();
  my.num=573723653;
  if(!my.isPrime()){
  return`${my.num}isnotprime`;
  }
  }
  functionmain(){
  start();
  }
  main();

如果我们运行这段代码,控制台将会输出:

MyClass.numisbeingsetbystartforthe1time
  MyClass.numisbeinggetbyisPrimeforthe1time
  MyClass.isPrimewascalledbystartforthe1timeandtook0mils.
  MyClass.numisbeinggetbystartforthe2time

proxyTrack接受2个参数:第一个是要监测的对象/类,第二个是一个配置项对象,如果没传递的话将被置为默认值。

关于“使用Proxy代理的方法”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

当前标题:使用Proxy代理的方法-创新互联
网址分享:https://www.cdcxhl.com/article38/deocsp.html

成都网站建设公司_创新互联,为您提供动态网站响应式网站品牌网站建设微信公众号网站建设自适应网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

网站建设网站维护公司