JavaScript対象向けプログラミング(6)プロトタイプチェーンで継承


継承は対象に向かう特性の一つで、継承の主な目的は重用のためです.サブクラスは、親タイプの属性または挙動を多重化することができ、サブクラスを大幅に簡略化し、重複定義を回避することができる.
継承の特徴1.サブオブジェクトは親オブジェクトの属性と方法を持っています.
継承特徴2:子対象は「一つの父」であり、「is-a」の特徴を備えています.人間が動物であるなら、人間は動物の子類であり、対象に現れて、一人は必ず動物の実例を指す引用があります.
サブタイプのプロトタイプは、親タイプの一例を指しており、サブクラスのインスタンスには親タイプのインスタンスの属性と挙動が備わっているため、継承が完了している.
Java中性子クラスの例は、superキーワードが親クラスのインスタンスに向けられており、継承においては、すべての対象言語に対してほぼ同じである.
//  
function Shape(){
	this.name = 'shape';
	this.toString = function() {return this.name;};
}
//2d  
function TwoDShape(){
	this.name = '2D shape';
}
//   
function Triangle(side, height) {
	this.name = 'Triangle';
	this.side = side;
	this.height = height;
	this.getArea = function(){return this.side * this.height / 2;};
}
//     1.              
TwoDShape.prototype = new Shape();
Triangle.prototype = new TwoDShape();
//  
TwoDShape.prototype.constructor = TwoDShape;
Triangle.prototype.constructor = Triangle;


var my = new Triangle(5, 10);

alert(my.toString());//    toString  ,    
alert(my.constructor);
/*    2:   “   ”   ,  “is-a”   ,
     ,          ,      ,                 */
alert(my instanceof TwoDShape);//      
alert(my instanceof Shape);