handler.apply() メソッドは関数呼び出しに対するトラップです。
構文
var p = new Proxy(target, {
apply: function(target, thisArg, argumentsList) {
}
});
引数
次の引数がapply メソッドに渡されます。thisはハンドラにバインドされます。
target- ターゲットオブジェクト
thisArg- 呼び出しに対するthis引数
argumentsList- 呼び出しに対する引数リスト
戻り値
apply メソッドはどんな値でも返すことができます。
説明
handler.apply メソッドは関数呼び出しに対するトラップです。
インターセプト
このトラップは下記の操作をインターセプトできます。:
不変条件
以下の不変条件が守られていない場合、TypeErrorが投げられます。
target は呼び出し可能、つまり関数でなければなりません。
例
次のコードでは、関数呼び出しをトラップします。
var 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 2015 (6th Edition, ECMA-262) [[Call]] の定義 |
標準 | Initial definition. |
| ECMAScript Latest Draft (ECMA-262) [[Call]] の定義 |
ドラフト |
ブラウザ実装状況
Update compatibility data on GitHub
| デスクトップ | モバイル | サーバー | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
apply | Chrome 完全対応 49 | Edge 完全対応 12 | Firefox 完全対応 18 | IE 未対応 なし | 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 |
凡例
- 完全対応
- 完全対応
- 未対応
- 未対応