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


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


JavaScript中的handler.apply()方法用作函数调用的陷阱。此方法返回的值用作通过代理进行的函数调用的结果。

用法:

const p = new Proxy(target, {
  apply:function(target, thisArg, argumentsList) {
  }
});

参数:此方法接受上述和以下所述的三个参数:



  • target:此参数保存目标对象。
  • thisArg:此参数用于调用。
  • argumentsList:此参数包含列表作为参数,并用于调用。

返回值:此方法返回任何值。

以下示例说明了JavaScript中的handler.apply()方法:

范例1:

function sum(a, b) { 
  return a + b; 
} 
  
const handler = { 
  apply:function(target, thisArg, argumentsList) { 
    console.log(`Calculate sum:${argumentsList}`); 
  
    return target(argumentsList[0], argumentsList[1])*14/3; 
  } 
}; 
  
const proxy1 = new Proxy(sum, handler); 
  
console.log(sum(23, 4)); 
console.log(proxy1(23, 4));

输出:

27
"Calculate sum:23, 4"
126

范例2:

var str = function(arg1, arg2) {   
  console.log('geeks get (' + arg1 + ', ' + arg2 + ')');   
};   
var proxy = new Proxy(str, {   
  apply:function(target, thisArg, parameters) {   
   console.log('Geeksforgeeks');   
    
    return target.apply(thisArg, parameters);   
  }   
});   
proxy('Tutorial', 'Jobs');   
    
proxy.apply(null, ['Knowledge', 'internships']);   
proxy.call(null, 'Stipend', 'skills');

输出:

"Geeksforgeeks"
"geeks get (Tutorial, Jobs)"
"Geeksforgeeks"
"geeks get (Knowledge, internships)"
"Geeksforgeeks"
"geeks get (Stipend, skills)"

支持的浏览器:下面列出了JavaScript处理程序支持的浏览器。apply()方法如下:

  • 谷歌浏览器
  • Firefox
  • Opera
  • Safari
  • Edge



相关用法


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