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


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


handler.apply() 方法用于捕获函数调用。 apply 陷阱返回的值也将用作通过代理进行函数调用的结果。

用法

apply:function(target, thisArg, argumentsList)

参数

target:目标对象。

thisArg:thisArg 用于调用。

argumentsList:用于调用的参数列表。

返回值

此方法可以返回任何值。

浏览器支持

Chrome 49
Edge 12
Firefox 18
Opera 36

例子1

var o = function(arg1, arg2) {
  document.writeln('proxy value(' + arg1 + ', ' + arg2 + ')');
};
var proxy = new Proxy(o, {
  apply:function(target, thisArg, parameters) {
    document.writeln('First exam..');
    
document.writeln("</br>");
    return target.apply(thisArg, parameters);
  }
});

proxy('23', '54');

输出:

First exam.. 
proxy value(23, 54)

例子2

var str = function(arg1, arg2) {
  document.writeln('in x(' + arg1 + ', ' + arg2 + ')');
};
var proxy = new Proxy(str, {
  apply:function(target, thisArg, parameters) {
   document.writeln('in apply');
        document.writeln("<br/>");

    return target.apply(thisArg, parameters);
  }
});
proxy('direct1', 'direct2');

proxy.apply(null, ['add', 'add']);
proxy.call(null, 'string', 'string');

输出:

in apply 
in x(direct1, direct2) in apply 
in x(add, add) in apply 
in x(string, string)

例子3

function p (a) 
{
  return a ;
}
var q = {
  apply:function(target, thisArg, argumentsList) {
   return target(argumentsList[0], argumentsList[1])*2;
  }};
var pro = new Proxy(p, q);
 document.writeln(p(56)); 
document.writeln("<br/>"); 
    document.writeln(pro(34));

输出:

56 
68






相关用法


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