当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


ES6 handler.apply()用法及代码示例



下面的例子定义了一个函数rectangleArea,它以宽度和高度为参数并返回矩形的面积。该程序创建一个代理并为矩形区域函数定义一个处理程序对象。这个handler object在函数执行之前验证传递给函数的参数数量。如果没有将两个参数传递给函数,处理程序对象将引发错误。

<script>
   function rectangleArea(width,height){
      return width*height;
   }
   const handler = {
      apply:function(target,thisArgs,argsList){
      console.log(argsList);
      //console.log(target)
      if(argsList.length == 2){
         return Reflect.apply(target,thisArgs,argsList)
      }
         else throw 'Invalid no of arguments to calculate'
      }
   }

   const proxy = new Proxy(rectangleArea,handler)
   const result = proxy(10,20);
   console.log('area is ',result)
   proxy(10) // Error
</script>

上面代码的输出将如下面提到的那样——

[10, 20]
area is 200
[10]
Uncaught Invalid no of arguments to calculate

相关用法


注:本文由纯净天空筛选整理自 ES6 - handler.apply()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。