ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript コンストラクターが「this」以外のものを返すことができるのはどのような場合ですか?

JavaScript コンストラクターが「this」以外のものを返すことができるのはどのような場合ですか?

DDD
リリース: 2024-11-11 07:11:02
オリジナル
641 人が閲覧しました

When Can a JavaScript Constructor Return Something Other Than '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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート