我是 oop 概念的新手,所以请在这里帮助我,每当我使用对象变量时,存储在其中的值是未定义的。请检查以下代码
function Bubble(q, w, e) {
var x= q;
var y= w;
var r = e;
var canvas= document.getElementById('mycanvas');
var ctx = canvas.getContext('2d');
ctx.beginPath();
ctx.arc(x,y,r,0,2*Math.PI);
ctx.stroke();
}
var b1 = new Bubble(100,100,50);
var b2 = new Bubble(160,160,30);
alert(b1.x);
使用this
代替var
。随着var
创建一个范围变量这是在访问function scope
,与this
你附上你的变量当前上下文。请参阅x, y, r
带有前缀的this.
。
function Bubble(q,w,e)
{
this.x = q;
this.y = w;
this.r = e;
var canvas = document.getElementById('mycanvas');
var ctx = canvas.getContext('2d');
ctx.beginPath();
ctx.arc(this.x, this.y, this.r, 0, 2*Math.PI);
ctx.stroke();
}
var b1 = new Bubble(100,100,50);
var b2 = new Bubble(160,160,30);
alert(b1.x);
<canvas id="mycanvas"></canvas>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句