javascript継承方式の3


3、コンストラクター/プロトタイプの書き方を組み合わせて、前の方式で継承します.
 
この方式は父類、子類の属性は全部構造関数にかけられています.方法は全部原型にかけられています.
 
/**
 *   Polygon:   
 */
function Polygon(sides) {
	this.sides = sides;
}
Polygon.prototype.setSides = function(s) {this.sides=s;}

/**
 * Triangle    
 * @param {Object} base  
 * @param {Object} height  
 */
function Triangle(base,height) {
	Polygon.call(this,3);//         
	this.base = base;
	this.height = height;
}
Triangle.prototype = new Polygon();//         

Triangle.prototype.getArea = function(){ //         
	return this.base*this.height/2;
}


//new   
var tri = new Triangle(12,4);
console.log(tri.sides);//     
console.log(tri.setSides);//     
console.log(tri.base);//    
console.log(tri.height);//    
console.log(tri.getArea);//    


//instanceof  ,        "is a"   
console.log(tri instanceof Triangle);//true,         
console.log(tri instanceof Polygon);//true,          
 
 
うん.このようなパターンでjsを書くと、大型モジュールも構築できます.