私はCrockfordの継承パターンを使って基本クラスShapeを構築しようとしています。この基本シェイプを使用して、私は円、四角形、三角形を描画しようとしています。私はちょっと固まっている。ベースメソッドを呼び出す/修正する方法がわかりませんでしたDouglas Crockfords - 基本メソッドを継承クラスに呼び出す方法
function points(x,y) {
x = this.x;
y = this.y;
}
function Shape() {
return {
this.points: [ ],
init : function(){
if(typeof this.context === ‘undefined’){
var canvas = document.getElementById(‘canvas’);
var context = canvas.getContext(‘2d’);
}
},
draw: function(){
var context = this.context;
context.beginPath();
context.moveTo(this.points[0].x, this.points[0].y);
for(var i=1; i< this.parameter.length; i++){
context.lineTo(this.parameter[i].x, this.parameter[i].y);
}
context.closePath();
context.stroke();
}
};
}
function Circle(x, y, r){
var points = Shape();
point.x = x;
points.y = y;
points.r = r;
var baseMethod = that.draw;
that.draw = function(){
/*how to modify the base method to draw circle*/
};
}
function Rectangle(a, b, c, d){
var points = Shape();
point.a = a;
points.b = b;
points.c = c;
points.d = d
var baseMethod = that.draw;
that.draw = function(){
/*how to call base method to draw rectangle*/
};
}
、 'X = this.x'する必要があります' this.x = x'(yにも同じ)。 'Shape'では、this.points = []'は 'points:[]'でなければなりません。 'var context ='は 'this.context ='でなければなりません。 –
あなたのコードをlintしてください、その醜い – Raynos
宣言的な文/句のシリーズは質問ではありません:) – vol7ron