Get to know MDN better
このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2016年9月以降、すべてのブラウザーで利用可能です。
handler.construct() メソッドは、オブジェクトの [[Construct]] 内部メソッドに対するトラップです。new 演算子などの操作で使用されます。結果としてのプロキシーオブジェクトが new 演算子を使用できるようにするためには、プロキシーを初期化するために使用されるターゲット自体が有効なコンストラクターである必要があります。
次の引数が construct() メソッドに渡されます。 this はハンドラーにバインドされます。
targetターゲットのコンストラクターオブジェクトです。
argumentsListコンストラクターに渡された引数の入った配列 (Array) です。
newTarget呼び出された元のコンストラクターです。
construct メソッドは新しく作成されたオブジェクトを表すオブジェクトを返す必要があります。
このトラップは下記の操作に介入できます。
他にも、[[Construct]] 内部メソッドを呼び出すあらゆる操作に介入できます。
プロキシーの [[Construct]] 内部メソッドは、以下の不変条件に違反している場合、呼び出されるとトラップで TypeError が発生します。
次のコードでは new 操作をトラップします。
次のコードでは不変条件に違反します。
次のコードはプロキシーを正しく初期化していません。プロキシーの target の初期化は、それ自身が new 演算子に有効なコンストラクターでなければなりません。
| ECMAScript® 2027 Language Specification # sec-proxy-object-internal-methods-and-internal-slots-construct-argumentslist-newtarget |
ブラウザー互換性一覧表を表示するには、JavaScript を有効にしてください。
より良いインターネットのための青写真。
このコンテンツの一部は、©1998–2026 個人の mozilla.org 協力者です。コンテンツはクリエイティブ・コモンズ・ライセンスのもとで利用できます。