もっと詳しく
JavaScript継承 は、オブジェクトがその親オブジェクトまたはベースオブジェクトのすべてのメソッドとプロパティを継承できるようにするメカニズムです。 また、OOP(オブジェクト指向プログラミング)の重要なコンポーネントと見なされます。

JavaScriptで継承を実装する背後にある考え方は、既存のオブジェクトから派生した新しいオブジェクトを追加することです。 新しく作成されたオブジェクトが親クラスの子または派生オブジェクトになると、そのすべてのメソッドとプロパティを継承できます。

この記事では、 タイプ 継承 JavaScript。 それでは、始めましょう!

JavaScriptの継承の種類

JavaScriptは、次のタイプの継承をサポートしています。

次のセクションでは、前述の各継承タイプについて説明します。

JavaScriptでのプロトタイプの継承

「「プロトタイプ 継承」を使用すると、親オブジェクトのプロパティとメソッドにアクセスできます。 このタイプの継承では、新しく作成されたオブジェクトは、既存のオブジェクトのプロパティとメソッドを継承できます。 通常、 “Object.getPrototypeOf()” と “Object.setPrototypeOf()」を使用して、オブジェクトのプロトタイプを取得および設定できます。 ただし、ES6は「__proto__」同様の目的に利用できるアクセサプロパティ。

JavaScriptでのプロトタイプ継承の構文

ChildObject .__ proto__ = ParentObject

ここ “ChildObject」は、「」のプロパティとメソッドを継承する、新しく作成されたオブジェクトを表します。ParentObject」。

例:JavaScriptでプロトタイプの継承を実装する方法

まず、「」という名前の2つのオブジェクトを作成します。自転車” と “」と「」のプロパティ自転車」オブジェクトと「名前」のプロパティ” 物体:

バイクにしましょう= {{

“青”

};

ヴェノムにしましょう = {{

名前 「毒」

};

__proto__」のプロパティ」オブジェクト、「」のプロパティを継承します自転車” 物体:

最後に、「自分の」(Venom.name)および「遺伝性の」(Venom.color)のプロパティ値” 物体:

コンソール。ログ((“これは “ + 毒。 + 「」 + 毒。名前)。;

JavaScriptでの疑似古典的継承

疑似クラシック 継承” 遺伝性の」子クラスを親クラスに関連付けるのを支援する関数。

この目的のために、疑似古典的継承は以下を利用します。

  • コンストラクタ()” 働き
  • 「「新着インスタンスを作成するための”演算子
  • プロトタイプ継承のチェーンを確立し、すべてのインスタンスが指定されたプロパティを継承するようにコンストラクター関数に割り当てられるプロパティ。

次に、以下の例を確認して、疑似古典的継承を明確に理解してください。

例:JavaScriptで疑似古典的継承を実装する方法

「」という名前のコンストラクター関数を定義します。自転車()」:

機能バイク(()。{{

これ名前 = ‘自転車’;

}

次に、「情報()「」の子オブジェクトに継承される「」関数自転車」:

自転車。プロトタイプ情報= 働き(()。{{

コンソール。ログ((‘これは ‘ + これ名前 )。;

};

このプログラムでは、「」という名前の別のオブジェクトを宣言します。、」と「Bike.call()” Bikeコンストラクタ()を呼び出すためのメソッド:

機能毒(()。 {{

自転車。電話((これ)。;

これ名前 = 「毒」;

}

次に、「プロトタイプ」プロパティは、「」オブジェクトと「自転車” 物体:

毒。プロトタイプ = 物体作成((自転車。プロトタイプ)。;

毒。プロトタイプコンストラクタ = 自転車;

最後のステップでは、「新着「演算子は、2つのインスタンスを作成するために使用されます。」” と “自転車「:

var venom= 新着(()。;

varバイク= 新着 自転車(()。;

そうした後、「情報()” 関数は両方のインスタンスに対して呼び出されます。

毒。情報(()。;

自転車。情報(()。;

以下の出力からわかるように、疑似古典的継承が実装され、インスタンス「」は「情報()」は正常に機能します:

JavaScriptの機能継承

適用することによってプロパティを継承するメカニズム 増強機能 (汎用機能を持つ関数)オブジェクトインスタンスに対しては、「機能継承」。 定義された拡張関数は、動的オブジェクト拡張を使用して、オブジェクトインスタンスに追加のプロパティとメソッドを追加します。 また、その「クロージャスコープ」を使用して、一部のデータを非公開にします。

例:JavaScriptで機能継承を実装する方法

この例では、「自転車」という名前の内部オブジェクトを持つオブジェクトバツ」:

機能バイク((データ)。 {{

var x= {{};

バツ。名前 = データ。名前;

戻る バツ;

}

次に、「」という名前の子オブジェクトを作成します。」は、「自転車” クラス。 この子オブジェクトは、拡張機能で構成されます。情報」にアクセスできます。名前」のプロパティバツ” 物体:

機能毒((データ)。 {{

var x= 自転車((データ)。;

バツ。情報= 働き (()。 {{

戻る “これは “ + バツ。名前 + 「バイク」;

};

戻る バツ;

}

機能継承を実装するために、「」を子インスタンスとして、「」の値を渡します。名前」としてのプロパティデータ” 口論:

var venom=(({{ 名前 「毒」 })。;

与えられた「console.log()」メソッドは、「x.name”親からのプロパティ“自転車」オブジェクトをコンソールに出力します。

コンソール。ログ((毒。情報(()。)。;

出力

JavaScriptの継承の種類については以上です。 好みに応じてさらに探索することができます。

結論

プロトタイプ 継承、疑似古典的継承、および 機能的 継承は異なります タイプ 継承 JavaScriptで。 プロトタイプタイプの継承は、「__proto__」プロパティ、一方、機能継承では、 増強 親クラスのプロパティにアクセスする関数が定義されています。 また、 疑似クラシック 継承は、 コンストラクタ() 働き、 “新着」演算子、および プロトタイプ 2つのオブジェクト間に継承を埋め込むためのプロパティ。 この記事では、JavaScriptのさまざまなタイプの継承について説明しました。

The post JavaScriptの継承の種類 appeared first on Gamingsym Japan.