「new.target」とは何ですか? ES6 クラスでどのように機能しますか?

Linda Hamilton
リリース: 2024-10-30 03:52:03
オリジナル
663 人が閲覧しました

 What is

ECMAScript 2015 の "new.target" について

ECMAScript 2015 仕様では、キーワード "new.target" が導入され、簡単に説明されています。 3回言及しました。 MDN は何らかのコンテキストを提供しますが、やや曖昧なままです。

「new.target」とは何ですか?

「new.target」はメタ プロパティであり、別名「new.target」とも呼ばれます。新しいターゲット。 非アロー関数環境の [[NewTarget]] 内部スロットの現在の値を取得します。この値は、関数が「new」キーワードで呼び出されたときに設定されます。

「new.target」の目的

その主な目的は、を決定することです。関数がコンストラクターとして呼び出されたかどうか。さらに、これは ES6 クラスの実装において重要な役割を果たします。

ES6 クラスが "new.target" を利用する方法

ES6 クラス コンストラクターが " 経由で呼び出されるときnew X」の場合、「this」の値は初期化されません。オブジェクトはまだ作成されていません。ただし、インスタンスは最初に呼び出されたコンストラクターの .prototype を継承する必要があります。

「new.target」は、super() 呼び出し中に「new」呼び出しを受け取った「最も外側の」コンストラクターを追跡します。 OrdinaryCreateFromConstructor プロシージャは、現在実行されているコンストラクターの代わりに「new.target」を使用して、正しい継承を保証します。

例:

<code class="javascript">class Parent {
  constructor() {
    console.log(new.target); // Child!
  }
}
class Child extends Parent {
  constructor() {
    super();
    console.log(this);
  }
}

new Child;</code>
ログイン後にコピー

この例では、「new」 .target" は、親コンストラクター内に "Child" を出力し、それが "new" キーワードで呼び出されたことを示します。

以上が「new.target」とは何ですか? ES6 クラスでどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!