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
デスクトップモバイルサーバー
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewAndroid 版 ChromeEdge MobileAndroid 版 FirefoxAndroid 版 OperaiOS 版 SafariSamsung InternetNode.js
基本対応Chrome 完全対応 49Edge 完全対応 12Firefox 完全対応 18IE 未対応 なしOpera 完全対応 36Safari 完全対応 10WebView Android 完全対応 49Chrome Android 完全対応 49Edge Mobile 完全対応 ありFirefox Android 完全対応 18Opera Android 完全対応 36Safari iOS 完全対応 10Samsung Internet Android 完全対応 5.0nodejs 完全対応 6.0.0

凡例

完全対応  
完全対応
未対応  
未対応

関連情報

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

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