この記事は編集レビューを必要としています。ぜひご協力ください。
この翻訳は不完全です。英語から この記事を翻訳 してください。
これは Harmony(ECMAScript 6) 提案の一部であり、実験段階の技術です。
この技術の仕様は安定していません。ブラウザ互換性の一覧表を確認してください。またこれらの構文や動作は、仕様変更などにより、新しいバージョンのブラウザでは変更される可能性があるという点に注意してください。
概要
関数呼び出しに対するトラップです。
構文
var p = new Proxy(target, {
apply: function(target, thisArg, argumentsList) {
}
});
引数
次の引数がapply メソッドに渡されます。thisはハンドラにバインドされます。
target- ターゲットオブジェクト
thisArg- 呼び出しに対するthis引数
argumentsList- 呼び出しに対する引数リスト
戻り値
apply メソッドはどんな値でも返すことができます。
説明
handler.apply メソッドは関数呼び出しに対するトラップです。
インターセプト
このトラップは下記の操作をインターセプトできます。:
不変条件
handler.apply メソッドに対する不変条件はありません。
例
次のコードでは、関数呼び出しをトラップします。
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 6 (ECMA-262) The definition of '[[Call]]' in that specification. |
勧告候補 | Initial definition. |
ブラウザ実装状況
| 機能 | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
|---|---|---|---|---|---|
| 基本サポート | ? | 18 (18) | ? | ? | ? |
| 機能 | Android | Chrome for Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
|---|---|---|---|---|---|---|
| 基本サポート | ? | ? | 18.0 (18) | ? | ? | ? |