对象属性返回' undefined'在Javascript上

时间:2017-05-09 23:01:19

标签: javascript html5-canvas undefined javascript-objects

我在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();

1 个答案:

答案 0 :(得分:4)

我认为你的Particle类构造函数中只有一个愚蠢的错字:它应该是constructor。例如:

class Particle {
    constructor(context, width, height) {
        ...
    }
};

由于您没有实际初始化您的P变量,因此所有属性都是undefined设计的。