【发布时间】:2018-04-17 04:00:14
【问题描述】:
我在 p5.js 中编码,我注意到一个我无法通过的问题。
我有一个名为“Boxes”的课程。我已经在使用“盒子”的功能了。但是,当我尝试使用该函数应用于对象数组时,它不起作用。我该如何解决这个问题?
class Boxes
{
constructor()
{
this.x;
this.y;
this.r=222;
this.g=55;
this.b=111;
}
show()
{
fill(this.r,this.g,this.b);
rect(this.x,this.y,50,50);
}
}
对于标准变量,它可以像这样完美地工作。
var box1 = new Boxes();
box1.show(); // It works.
当我尝试不同的东西时它不起作用。下面的例子。
var myboxes = [{'x':this.x, 'y':this.y}]; // That's OK :)
myboxes.push({x:100, y:100}); // That's OK too :)
myboxes[1].show(); // But. It gives an error :/
上面写着:“myboxes[1].show 不是函数”
虽然我用括号编写了 show() 函数。它说 “myboxes[1].show 不是一个函数”当我使用它时它工作正常 box1.show()。如何使用对象数组访问函数? 我要试试别的吗?你有什么建议?
【问题讨论】:
-
在
box1的情况下,您实际上创建了一个Boxes对象。在数组示例中你没有。 -
myboxes是一个包含 x 和 y 的对象数组。上面没有show()函数。你想达到什么目的? -
我试图将 show() 函数添加到这一行,但我做不到。有什么方法可以实现吗?
var myboxes = [{'x':this.x, 'y':this.y}];我试过var myboxes = [{'x':this.x, 'y':this.y, 'show':this.show()}];当然它也没有用。有什么建议吗?
标签: javascript class oop p5.js