ホームページ > 記事 > ウェブフロントエンド > JavaScript コンストラクターが「this」以外のものを返すことができるのはどのような場合ですか?
コンストラクターが 'this' 以外の値を返すインスタンス
JavaScript では、new キーワードを使用してコンストラクターが呼び出される場合、通常、次の値が返されます。新しく作成されたオブジェクト。ただし、特定の状況下では、これを返さないようにするために、別の値を返すことができます。
他の値を返すための条件
ECMA-262 第 3 版仕様で概説されているとおり[[Construct]] 内部プロパティ (ステップ 7)、コンストラクターの戻り値 (Result(6)) によって、これが返されるか、または返されるかが決まります。 ない。 Result(6) がオブジェクト型ではない場合、これの代わりにそれが返されます。この条件は、コンストラクターを正しく実行するために重要です。
例
次のコンストラクターを考えてみましょう。
function Foo() { return 10; // Returning a non-object primitive } var foo = new Foo();
この例では、 10 は非オブジェクト プリミティブであり、Foo() コンストラクターの結果として返されます。したがって、foo にはプリミティブ値 10 が割り当てられ、foo はプリミティブ型であるため、(new Foo()instanceof Foo) は false と評価されます。
概要
要約すると、コンストラクターは、コンストラクターの戻り値 (Result(6)) が次の場合にのみ、これ以外の値を返すことができます。オブジェクトタイプではありません。この条件により、非オブジェクト値を使用してオブジェクトを構築したり、他のコンストラクターに制御を渡したりすることができます。
以上がJavaScript コンストラクターが「this」以外のものを返すことができるのはどのような場合ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。