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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。