「寄生性遺伝」という言葉を聞くと、怖気づいてしまいがちですが、これは何ですか?安心してください、この記事ではこのJSでの継承方法を分かりやすく解説していきますので、皆さんのお役に立てれば幸いです。
最初に次のように空の関数を定義します。仮パラメータはオリジナルです:
function createAnother(original){}
この関数で新しいオブジェクト クローンを作成します:
function createAnother(original){ var clone=Object.create(original); }
クローン オブジェクトにsayHi、sayHi 属性を追加します。関数:
function createAnother(original){ var clone=Object.create(original); clone.sayHi=function(){ alert('hi'); }; }
最後に、クローン オブジェクトを返します:
function createAnother(original){ var clone=Object.create(original); clone.sayHi=function(){ alert('hi'); }; return clone; }
このようなオブジェクトがあるとします:
var person={ name:'Nicholas', friends:['Shelby','Court','Van'] };
上記のオブジェクトを実際のパラメータとして関数に渡して実行します:
var anotherPerson=createAnother(person); anotherPerson.sayHi();
操作の結果は次のとおりです: ' 「こんにちは」ウィンドウが表示されます。
関数 createAnother に次の文があることがわかります:
var clone=Object.create(original);
これはプロトタイプの継承ではありませんか?
実際、プロトタイプの継承メソッドは実際に内部で使用されており、最終的に返されるオブジェクトはクローン オブジェクトです。ただし、プロトタイプ継承とは少し異なります。
プロトタイプ継承は元のオブジェクトのプロパティを継承し、新しいオブジェクトには新しい追加プロパティがありません。寄生継承は新しいオブジェクトに内部的にプロパティを追加できます。元のオブジェクトのプロパティに加えて、内部的に追加されたプロパティもあります。
上記の例では、プロトタイプの継承と比較して、追加の重要なステートメントがあります:
clone.sayHi=function(){ alert('hi'); };
インスタンスを作成した後、インスタンスはこの属性を持ちます。
関連する推奨事項:
js 継承 Base class_js のソースコード分析_オブジェクト指向
以上がJS継承の寄生継承の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。