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 |
凡例
- 完全対応
- 完全対応
- 未対応
- 未対応