handler.apply()
The handler.apply()
method is a trap for a function call.
Try it
Syntax
new Proxy(target, {
apply: function(target, thisArg, argumentsList) {
}
});
Parameters
The following parameters are passed to the apply()
method.
this
is bound to the handler.
target
-
The target callable object.
thisArg
-
The
this
argument for the call. argumentsList
-
The list of arguments for the call.
Return value
The apply()
method can return any value.
Description
The handler.apply()
method is a trap for a function call.
Interceptions
This trap can intercept these operations:
proxy(...args)
Function.prototype.apply()
andFunction.prototype.call()
Reflect.apply()
Invariants
If the following invariants are violated, the proxy will throw a
TypeError
.
The target
must be a callable itself. That is, it must be a
function object.
Examples
Trapping a function call
The following code traps a function call.
const p = new Proxy(function() {}, {
apply: function(target, thisArg, argumentsList) {
console.log('called: ' + argumentsList.join(', '));
return argumentsList[0] + argumentsList[1] + argumentsList[2];
}
});
console.log(p(1, 2, 3)); // "called: 1, 2, 3"
// 6
Specifications
Specification |
---|
ECMAScript Language Specification # sec-proxy-object-internal-methods-and-internal-slots-call-thisargument-argumentslist |
Browser compatibility
BCD tables only load in the browser