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]] の定義
ドラフト  

ブラウザ実装状況

機能ChromeEdgeFirefoxInternet ExplorerOperaSafari
基本対応491218 なし3610
機能Android webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
基本対応4949 あり1836105.0

関連情報

ドキュメントのタグと貢献者

このページの貢献者: u_7cc, shide55
最終更新者: u_7cc,