我在HTML 5 canvas的粒子系统的早期阶段遇到了直接问题。当我尝试检索Particle
类对象的属性时,它返回undefined
,我无法找出原因!
class Particle {
contructor(context, width, height) {
this.x = width / 2;
this.y = height / 2;
this.radius = Math.random() * 5 + 5;
}
};
var App = {
canvas: document.getElementById('canvas'),
ctx: canvas.getContext('2d'),
initialize: function() {
this.canvas.width = window.innerWidth;
this.canvas.height = window.innerHeight;
},
draw: function() {
var P = new Particle(this.ctx, this.canvas.width, this.canvas.height);
alert(P.x); // Why does this return undefined?
this.ctx.beginPath();
this.ctx.arc(P.x,P.y,P.radius,0,2*Math.PI);
this.ctx.stroke()
}
};
App.initialize();
App.draw();
答案 0 :(得分:4)
我认为你的Particle
类构造函数中只有一个愚蠢的错字:它应该是constructor
。例如:
class Particle {
constructor(context, width, height) {
...
}
};
由于您没有实际初始化您的P
变量,因此所有属性都是undefined
设计的。