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
相关用法
- Javascript Uint8Array.from()用法及代码示例
- Javascript padEnd()用法及代码示例
- Javascript Float64Array.from()用法及代码示例
- Javascript Uint8ClampedArray.from()用法及代码示例
- Javascript padStart()用法及代码示例
- Javascript Int16Array from()用法及代码示例
- Javascript Uint32Array from()用法及代码示例
- Javascript Replace()用法及代码示例
- Javascript Reflect.has()用法及代码示例
- Javascript Promise.all()用法及代码示例
- Javascript compile()用法及代码示例
- Javascript Array from()用法及代码示例
- Javascript hasOwnProperty()用法及代码示例
- Javascript Array map()用法及代码示例
- Javascript exec()用法及代码示例
注:本文由纯净天空筛选整理自SHUBHAMSINGH10大神的英文原创作品 JavaScript | handler.apply() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。