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

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

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-24 12:24:11996ブラウズ

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

JavaScript の「新しい」キーワードを調べる

「新しい」キーワードを理解する

JavaScript では、「new」キーワードはオブジェクトの作成と概念において重要な役割を果たします。継承の。 JavaScript は非オブジェクト指向言語であるという評判にもかかわらず、「new」キーワードを通じてオブジェクトベースのプログラミングに独自のアプローチを導入しています。

「new」キーワードの目的

「new」キーワードにはいくつかの重要な役割があります:

  1. オブジェクト作成: 新しいオブジェクトの作成を開始します。
  2. プロトタイプ設定: 新しく作成されたオブジェクトの内部 [[prototype]] プロパティをコンストラクター関数の外部プロトタイプ オブジェクトに設定します。
  3. 'this' 参照: 新しく作成された変数に 'this' 変数を割り当てます。 object.
  4. Constructor Invocation: 新しく作成されたオブジェクトをコンテキストとして使用してコンストラクター関数の実行をトリガーします。
  5. Object Return:コンストラクター関数が null 以外のオブジェクトを返さない限り、新しく作成されたオブジェクトを返します。 Reference.

[[prototype]] および 'prototype' プロパティについて

  • [[prototype]] プロパティ:この内部プロパティはすべてのオブジェクトに固有であり、オブジェクトのプロトタイプへの参照を保存します。直接変更することはできませんが、Object.getPrototypeOf() を使用してアクセスできます。
  • 'prototype' プロパティ: これは、関数オブジェクト専用のアクセス可能なプロパティです。この関数をコンストラクターとして使用して作成されたすべてのインスタンスによって共有されるプロトタイプ オブジェクトへのアクセスが可能になります。

'new' を使用したオブジェクト作成の例

function ObjMaker() { this.a = 'first'; }
// 'ObjMaker' is the constructor function

ObjMaker.prototype.b = 'second';
// 'ObjMaker.prototype' is the prototype object

obj1 = new ObjMaker();
// 'new' creates a new 'obj1' object, assigns the prototype, and executes 'ObjMaker'

obj1.a; // 'first'
obj1.b; // 'second'
// 'obj1' inherits 'b' from 'ObjMaker.prototype' while still accessing its own property 'a'

継承の階層'new'

'new' キーワードにより、JavaScript ではプロトタイプベースの継承モデルが可能になります。 [[prototype]] プロパティを設定すると、オブジェクトはコンストラクターのプロトタイプからプロパティとメソッドを継承します。これにより、次のような既存のクラスを拡張するサブクラスの作成が可能になります。

function SubObjMaker() {}
SubObjMaker.prototype = new ObjMaker(); // deprecated, use Object.create() now

SubObjMaker.prototype.c = 'third';
obj2 = new SubObjMaker();

obj2.c; // 'third'
obj2.b; // 'second'
obj2.a; // 'first'
// 'obj2' inherits 'c' from 'SubObjMaker.prototype', 'b' from 'ObjMaker.prototype', and 'a' from 'ObjMaker'

要約すると、JavaScript の 'new' キーワードはオブジェクトの作成を容易にするだけでなく、クラスベースをシミュレートする柔軟な継承メカニズムも可能にします。プログラミング。

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

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。