js継承の-----組み合わせ引継ぎ


ポートフォリオ継承は、プロトタイプチェーンとビルトイン関数を借りる技術を組み合わせて、両者の長さを発揮するアーティファクト継承とも呼ばれることがあります.
アイデア:プロトタイプチェーンを使ってプロトタイプの属性と方法の継承を実現し、構造関数を借りることによってインスタンス属性の継承を実現します.このように、原型に方法を定義することによって実現されます.
関数多重化により、各インスタンスに自分の属性があることを保証することができます.
 <script type="text/javascript">
	function SuperType(name){
		this.name = name;
		this.colors =  ["red","blue","green"];
	}
	SuperType.prototype.sayName = function(){
		alert(this.name);
	}

	function SubType(name,age){
		//   SuperType,          
		SuperType.call(this,name);

		//    
		this.age = age;
	}
	//    
	SubType.prototype = new SuperType();

	SubType.prototype.sayAge = function(){
		alert(this.age);
	}


	var instance1 = new SubType("Nicholas",29);
	instance1.colors.push("black");
	alert(instance1.colors);//red,blue,green,black
	instance1.sayName();
	instance1.sayAge();

	var instance2 = new SubType("Greg",29);
	alert(instance2.colors);//red,blue,green
	instance2.sayName();
	instance2.sayAge();
  </script>
プロトタイプチェーンの継承と構造関数の借用の欠点を回避し、彼らの長所を融合させ、JAVSCRIPTで最も一般的な継承方式となっています.
また、instancofおよびisPrototypeOf()は、組み合わせ相続に基づいて作成されたオブジェクトを識別するためにも使用されることができる.