📜  JavaScript handler apply()方法

📅  最后修改于: 2020-10-25 09:13:30             🧑  作者: Mango

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("
"); 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("
"); 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("
"); document.writeln(pro(34));

输出:

56 
68