【JSリファレンス】constructハンドラー(Proxy)

更新日:2024/06/14

constructハンドラーは、Proxyコンストラクターに渡すハンドラーオブジェクトで使用可能なメソッドです。

Proxyオブジェクト[[Construct]]スロットが呼び出された時、ハンドラーで定義した関数が呼び出されます。

[[Construct]]スロットは、自分自身をコンストラクタとして実行しインスタンスを返します。

 

■構文

construct:function ( target, argumentsList , newTarget ){ }
  1. target: Functionオブジェクト
  2. argumentsList: 関数に渡す引数をセットしたアレイライクオブジェクト
  3. newTarget: インスタンスのプロトタイプに組み込まれるprototypeプロパティを持つオブジェクト。
何らかの値

 

■戻り値の検証

戻り値がオブジェクトでない場合、TypeErrorです。

 

■使用例

const obj = function(){return this.value=200;}

const handlerObj = {
     // 引数trueで呼び出したときのみインスタンスを返す
    construct: function(target, argumentsList , newTarget){
        return argumentsList[0] !== true ? {value:"不正呼び出し"}
             : Reflect.construct(target, argumentsList , newTarget);
    }
};
const proxyObj = new Proxy( obj ,handlerObj );

console.log( new proxyObj().value );
// 結果: 不正呼び出し

console.log( new proxyObj(true).value );
// 結果: 200

 

関連ページ

更新日:2024/06/14

書いた人(管理人):けーちゃん

スポンサーリンク

記事の内容について

null

こんにちはけーちゃんです。
説明するのって難しいですね。

「なんか言ってることおかしくない?」
たぶん、こんなご意見あると思います。

裏付けを取りながら記事を作成していますが、僕の勘違いだったり、そもそも情報源の内容が間違えていたりで、正確でないことが多いと思います。
そんなときは、ご意見もらえたら嬉しいです。

掲載コードについては事前に動作確認をしていますが、貼り付け後に体裁を整えるなどをした結果動作しないものになっていることがあります。
生暖かい視線でスルーするか、ご指摘ください。

ご意見、ご指摘はこちら。
https://jsref.affi-sapo-sv.com/info.php

 

このサイトは、リンクフリーです。大歓迎です。