ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript で「new」キーワードはオブジェクトを作成し、継承を有効にするためにどのように機能しますか?

JavaScript で「new」キーワードはオブジェクトを作成し、継承を有効にするためにどのように機能しますか?

Susan Sarandon
リリース: 2024-12-19 09:10:14
オリジナル
259 人が閲覧しました

How Does the `new` Keyword Work in JavaScript to Create Objects and Enable Inheritance?

JavaScript の 'new' キーワードの詳細: 継承の謎を解く

JavaScript の 'new' キーワードは、特に以下の点を考慮すると最初は開発者を困惑させます。この言語は非オブジェクト指向であるという評判です。その目的と、オブジェクトの作成と継承においてそれが果たす複雑な役割を見てみましょう。

「new」キーワードは何をしますか?

使用される場合、「new」キーワードはいくつかの重要なタスクを実行します:

  1. 次のタイプの新しいオブジェクトを作成します。 "object."
  2. 新しく作成されたオブジェクトの内部のアクセスできない [[prototype]] プロパティを、コンストラクター関数の外部のアクセス可能なプロトタイプ オブジェクトに設定します。
  3. 新しく作成されたオブジェクトに this 変数を割り当てます。
  4. 新しく作成したオブジェクトをコンテキストとしてコンストラクター関数を実行します。 'this.'
  5. コンストラクター関数が null 以外のオブジェクト参照を指定しない限り、新しく作成されたオブジェクトを返します。

簡単に言えば、'new' キーワードはシームレスなオブジェクトの作成を容易にし、初期化、JavaScript でのプロトタイプ継承の段階を設定します。

「new」を使用する場合キーワード

次の必要がある場合は、「new」キーワードの使用が必須です。

  • 新しいオブジェクトを初期化する
  • オブジェクトの動作と状態を定義するコンストラクター関数を使用して
  • オブジェクトのプロトタイプを確立するchain

次の場合は、「new」キーワードの使用を避けてください。

  • 明示的なプロトタイプ チェーンを使用せずに匿名オブジェクトを作成したい
  • 戻りたい場合コンストラクター関数からの非オブジェクト値

の例プロトタイプの継承

例を使用してプロトタイプの継承を説明します。

function ObjMaker() { this.a = 'first'; }
ObjMaker.prototype.b = 'second';
const obj1 = new ObjMaker();
ログイン後にコピー

このシナリオでは、「new」キーワードを使用して次のようにします。

  • 新しいオブジェクト obj1 を作成し、その [[prototype]] プロパティを次のように設定します。 ObjMaker.prototype.
  • obj1 の a プロパティを 'first' に設定します。
  • ObjMaker.prototype から b プロパティを継承し、値を 'second' にします。

これにより、obj1 のプロトタイプ チェーンが ObjMaker.prototype につながる階層が確立され、継承が容易になります。

結論

「new」キーワードは、JavaScript でのオブジェクトの作成と継承において極めて重要な役割を果たします。これにより、オブジェクトの初期化が可能になり、コードの再利用性が向上し、プロトタイプの継承のための包括的なメカニズムが提供されます。そのニュアンスを理解することで、開発者はその機能を活用して、エレガントで保守可能な JavaScript アプリケーションを構築できます。

以上がJavaScript で「new」キーワードはオブジェクトを作成し、継承を有効にするためにどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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