javascript継承方式の3
1176 ワード
3、コンストラクター/プロトタイプの書き方を組み合わせて、前の方式で継承します.
この方式は父類、子類の属性は全部構造関数にかけられています.方法は全部原型にかけられています.
うん.このようなパターンでjsを書くと、大型モジュールも構築できます.
この方式は父類、子類の属性は全部構造関数にかけられています.方法は全部原型にかけられています.
/**
* 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を書くと、大型モジュールも構築できます.