问题,在对象内部使用 p5.js 宽度和高度方法

Problems, using p5.js width and height methods inside an object

您好,我无法理解在哪些地方和哪些地方不能使用 p5.js 方法。在这个codepen,

var bubble = {
  x: 200,
  y: 200,
  display: function() {
    stroke(255);
    strokeWeight(4);
    noFill();
    ellipse(this.x, this.y, 24, 24);
  },
  move: function() {
    this.x = this.x + random(-1, 1);
    this.y = this.y + random(-1, 1);
  }
}

function setup() {
  createCanvas(600, 400);

}

function draw() {
  background(0);
  bubble.display();
  bubble.move();
  ellipse(width/2,height/2,50,50)
}

如果我将 'bubble' 对象内的 x 和 y 值替换为 'width/2' 和 'height/2' - 控制台打印 'width' 未定义?如果我在 draw() 函数中使用相同的方法,它就可以正常工作。我猜这是一个范围界定问题?但不确定如何解决它。非常感谢。

var bubble = {
  init : function(){
   this.x = width/2;
   this.y = height/2;
  },
  display: function() {
    stroke(255);
    strokeWeight(4);
    noFill();
    ellipse(this.x, this.y, 24, 24);
  },
  move: function() {
    this.x = mouseX;
    this.y = mouseY;
  }
}

我不能告诉你为什么它不起作用,我想不通,但这是一个可行的解决方案