handler.apply()
method is a trap for a function call.
The source for this interactive example is stored in a GitHub repository. If you'd like to contribute to the interactive examples project, please clone https://github.com/mdn/interactive-examples and send us a pull request.
const p = new Proxy(target, {
apply: function(target, thisArg, argumentsList) {
}
});
The following parameters are passed to the
apply()
方法。
this
is bound to the handler.
target
The target object.
thisArg
this
argument for the call.
argumentsList
The list of arguments for the call.
apply()
method can return any value.
handler.apply()
method is a trap for a function call.
This trap can intercept these operations:
proxy
(...
args
)
Function.prototype.apply()
and
Function.prototype.call()
Reflect.apply()
If the following invariants are violated, the proxy will throw a
TypeError
.
target
must be a callable itself. That is, it must be a function object.
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
| 规范 |
|---|
|
ECMAScript (ECMA-262)
The definition of '[[Call]]' in that specification. |
| Desktop | Mobile | Server | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
apply
|
Chrome 49 | Edge 12 | Firefox 18 | IE No | Opera 36 | Safari 10 | WebView Android 49 | Chrome Android 49 | Firefox Android 18 | Opera Android 36 | Safari iOS 10 | Samsung Internet Android 5.0 | nodejs 6.0.0 |
完整支持
不支持