无法读取未定义 Processing.js 的 属性

Cannot read property of undefined Processing.js

我创建了一个带有对象提升的对象,但是当尝试使用数组访问它时,调试器指出它是未定义的。

var h = 30;
var disk = function(pos,elv){
    this.pos = pos;
    this.elv = elv;
    rect(56 * pos, 369-pos * h + h, 95, h, 2);
};
var disks = [
    {position:1,
    elevation:1},
    {position:1,
    elevation:2},
    {position:1,
    elevation:3},
    {position:1,
    elevation:4},
    {position:1,
    elevation:5},
    {position:1,
    elevation:6}
];
fill(0, 136, 255);
for(var i = 0; i<= 6; i++){
    var diskNum = disks[i];
    disk(1,diskNum.elevation);
}
};

我希望程序将矩形绘制在彼此之上,但程序显示无法读取 属性 未定义的高程。 https://www.khanacademy.org/computer-programming/new-program/5983920391094272

您的 disks 数组中有 6 个元素,索引分别为 0、1、2、3、4 和 5。

然后使用这个 for 循环遍历它们:

for(var i = 0; i <= 6; i++){

由于您使用的是 <= 运算符,这包括 7 个索引:0、1、2、3、4、5 和 6。

您可能只需要 < 运算符。

另请注意,存储 this.posthis.elv 没有多大意义,因为您永远不会将它们用于任何事情。

当我修复上述错误时,我看到了一个矩形。不太确定该程序的用途,但这至少可以修复您的错误。