前の記事では、組み合わせ継承が導入されており、残りの継承について説明します。
プロトタイプの継承
関数を呼び出して、この関数によって返されるオブジェクトを受信します。このオブジェクトのプロトタイプは、関数に渡されるパラメーターオブジェクトです。
のように:
function personobject(o){function f(){} f.prototype = o;新しいf();} var person = {name: "nicholas"、friends:["shelby"、 "court"、 "van"]} var person_one = personobject(person);上記のコードから、私たちはその人がperson_oneのプロトタイプであることを知っています。 ES5は、プロトタイプ継承を正規化する方法を追加しました。この方法はobject.create()です。この方法には2つのパラメーターがあります。 1つ目は、上記の人のような新しいオブジェクトのプロトタイプとしてのオブジェクトであり、2番目は新しいオブジェクトの追加属性を定義するオブジェクトです。 2番目のパラメーターはオプションです。
のように:
var person_one = object.create(person、{name:{value: "jon"}});1つのオブジェクトを別のオブジェクトに類似しているだけの場合、プロトタイプ継承を使用できます。
寄生性継承
関数にプロトタイプ継承を実装し、受信したオブジェクトに独自のプロパティとメソッドを追加します。
のように:
function createanother(o){var person_one = personobject(o); person_one.sayhi = function(){alert( "hi"); } return person_one;}寄生的な組み合わせ継承
組み合わせ継承にも欠点があります。 2つの属性継承を実装し、寄生的な組み合わせ継承はこの問題を回避します。インスタンスはコンストラクターを介して属性を継承しますが、プロトタイプ法は寄生的継承を通じて継承されます。
のように:
function enternit(subtype、supertype){var prototype = object(supertype.prototype); prototype.constructor = subtype; subtype.prototype = prototype;}上記の関数を呼び出すことにより、subtye.prototypeのプロトタイプはsupertype.prototypeであり、プロトタイプメソッドの継承を完了します。
継承に関する上記のJavaScript分析は、私があなたと共有するすべてのコンテンツです。参照を提供できることを願っています。wulin.comをもっとサポートできることを願っています。