无法读取未定义 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.pos
和 this.elv
没有多大意义,因为您永远不会将它们用于任何事情。
当我修复上述错误时,我看到了一个矩形。不太确定该程序的用途,但这至少可以修复您的错误。
我创建了一个带有对象提升的对象,但是当尝试使用数组访问它时,调试器指出它是未定义的。
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.pos
和 this.elv
没有多大意义,因为您永远不会将它们用于任何事情。
当我修复上述错误时,我看到了一个矩形。不太确定该程序的用途,但这至少可以修复您的错误。