ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript コンストラクターは構築されたオブジェクト以外の値を返すことができますか?
コンストラクターの戻り値と [Instanceof] 演算子
JavaScript では、コンストラクター関数は構築されたオブジェクト以外の値を返すことができます。こうした状況を理解することは、instanceof 演算子からの予期せぬ結果などの実行時エラーを回避するために重要です。
ECMAScript 3rd Edition 仕様では、コンストラクターの動作を制御する [[Construct]] プロパティを定義しています。仕様によると:
したがって、コンストラクターは、instanceof 演算子が true を返さないようにするために、非プリミティブ値 (関数や配列など) を返すことができます。
例:
function Foo() { return []; } const foo = new Foo(); console.log(foo instanceof Foo); // false
コンストラクターは配列 (非オブジェクト) を返すため、instanceof チェックは失敗します。逆に、プリミティブ値 (null や未定義など) を返しても true が返されます。
要約すると、コンストラクターによって返される値は、instanceof の結果に影響を与える可能性があります。 [[Construct]] プロパティで概説されている条件を理解することで、開発者は予期しない動作を防止し、クラスの継承チェックを正確に行うことができます。
以上がJavaScript コンストラクターは構築されたオブジェクト以外の値を返すことができますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。