継承させたい、それが親を提供する必要がある(誰継承されたプロパティを提供継承)
まず、プロトタイプチェーンを継承するために
フォーカスを:プロトタイプの新しいインスタンスは、親クラスのインスタンスを等しくしてみましょう。
特徴:1、継承属性の例:属性コンストラクタの例では、親クラスのコンストラクタのプロパティ、親クラスのプロトタイプのプロパティ。(!クラスの新しいインスタンスは、親インスタンスのプロパティを継承しません)
短所:1、新しいインスタンスは、親クラスのコンストラクタのパスを参照することはできません。
2、単一継承。
3、すべての新しいインスタンスは、親クラスのインスタンスの属性を共有します。(プロトタイプの属性が共有され、プロトタイプの属性の変更例は、prototypeプロパティの別の例は変更されます!)
第二に、コンストラクタの継承を借り
キー:.applyは.call()で()コンストラクタ親関数関数は(サブクラス機能(コピー)で行っ親クラスの関数から作られる)サブクラスに統合されている
特性:1、唯一の親クラスは、プロトタイプの性質を継承していない、親クラスのコンストラクタのプロパティを継承。
1,2,3を継承する2は、プロトタイプチェーンの欠点を解決します。
3、コンストラクタ複数の属性(単数または複数呼び出し)を継承することができます。
図4の例では、サブとしては、親に渡すパラメータ。
短所:1、唯一の親クラスのコンストラクタのプロパティを継承することができます。
図2は、多重化コンストラクタを達成することはできません。(毎回リコールと各)
、親クラスのコンストラクタのコピーが肥大化し、それぞれの新しいインスタンス3、そこにあります。
第三に、継承の組み合わせ(共通)(継承鎖とプロトタイプ組成ボローコンストラクタは継承)
キー:モード、パラメータ、及び多重伝送の両方の利点を組み合わせ
、1、転送することができる親クラスプロトタイプのパラメータのプロパティを継承することができます特性を再利用可能。
2は、それぞれの新しいインスタンスコンストラクタの属性はプライベート導入されます。
短所:二回親クラスのコンストラクタ(メモリ消費)と呼ばれる、サブクラスのコンストラクタは、プロトタイプで親クラスのコンストラクタを置き換えます。
第四に、原型継承
強調:機能を持つオブジェクトをパッケージ化した後、この関数は、プロパティまたはオブジェクトのインスタンスを追加するために自由になり、呼び出し元の関数に戻ります。object.create()が原則です。
特徴:オブジェクトをコピーと同様に、ラップする関数を使用します。
短所:1、すべてのインスタンスは、プロトタイプのプロパティを継承します。
2、多重化を達成することはできません。(属性の新しいインスタンスは、後で追加される)
V.寄生継承
フォーカス:それは原型式がシェルを継承して設定することです。
長所:それはオブジェクトを返すように設定するだけのシェル(本)、この関数は、作成した当然のこととなっている新しいオブジェクトであるため、カスタムタイプを作成していません。
短所:プロトタイプに役に立たないが、再利用することはできません。
六、合成寄生継承(共通の)
寄生:オブジェクトを返し、その後に関数を呼び出す
組合せ:プロトタイプの機能は他の例と同じです。2、機能の導入により、別のコンストラクタを適用するか、呼び出し、質量参加ができ
注力:継承された問題の修正された組み合わせは、
この知識ポイントを継承した機能を実行する方法を、より多くの機能の使い方のように機能し、そんなに相続の対象ではありませんリユース、私はこれらの組み合わせと継承の使用は同じだと思います。いくつかの継承された上記の方法は、自分の欠点マニュアルを修復することができますが、マニュアルには、修理が相続の他のモードとなり以上です。
遺伝パターンに焦点を当てた研究では、自分の考えを学んでいる、またはあなたが時間をコーディングに関する書籍の例では、そのようなトラブルに従事する理由を明らかに直接継承できると感じていますよ。原型継承内部オブジェクトのコピーでそれをコピーし、そのオブジェクトの内部プロパティを継承することができないだけで機能するだけでなく、機能(オブジェクトが内部ソースオブジェクトを返します)を呼び出すこと自由に、同様にそれらに属性を追加し、上の変更パラメータあなたは、プロトタイプオブジェクトを変更することができ、そしてこれらの新しい属性は、お互いに影響を与えません。