背景に魚が動くウェブページを作っています。魚の種類ごとに、Fish という親クラスと子クラスがあります。Fish クラスには、種クラスの各インスタンスで共通に使用される変数を参照する print メソッドがあります。その場で画像のサイズを変更する必要があるため、種の変数を単純に変更し、種の各オブジェクトを調整したいと思います。私の質問は次のとおりです:親クラスメソッド内のそのクラスの各インスタンスで使用できる各クラスの単一の変数を作成するにはどうすればよいですか?
ここに私が試したものの簡略版があります。もちろん、うまくいきません。どんな助けでも大歓迎です。
<!DOCTYPE html>
<html>
<body>
<canvas id="myCanvas"></canvas>
</body>
<script>
function Fish(fi){
this.myPic = fi;
}
Fish.prototype.print = function(cnv, x, y){
cnv.drawImage(this.myPic,x,y);
};
function clownF(){Fish.call(this, clownF.pic);}
clownF.prototype = Object.create(Fish.prototype);
clownF.prototype.constructor = clownF;
clownF.pic = new Image();
clownF.pic.src = "clownF.png";
clownF.pic.onload = function(){
var c=document.getElementById("myCanvas");
c.width = 500;
c.height = 300;
var ctx=c.getContext("2d");
var f = new clownF();
f.print(ctx,10,10);
var temp = document.createElement('canvas');
temp.width = clownF.pic.width / 2;
temp.height = clownF.pic.height / 2;
var tctx = temp.getContext('2d');
tctx.drawImage(clownF.pic,0,0,temp.width,temp.height)
clownF.pic = temp;
f.print(ctx,100,100);
}
</script>
</html>