【发布时间】:2015-04-18 05:31:56
【问题描述】:
这是一个使用 Processing,js 的程序的对象方法。它遍历对象内的 force 数组中存储的所有 PVector 对象,将它们相加,并将总和作为另一个 PVector 对象返回。
经过调试,我发现这是错误的原因,'Uncaught TypeError: Cannot read property 'x' of undefined' 我只是不明白这个问题,或者这个错误是什么意思。任何帮助表示赞赏。
Body.prototype.resForce = function() {
var resForce = new PVector(0, 0);
for (var i=0; i<this.forces.length; i++) {
resForce.set = resForce.add(this.forces[i]);
}
return resForce;
};
编辑:
这是full code,所以它更有意义..
【问题讨论】:
-
在右侧,它应该显示违规错误的行号。请检查以确保此代码块中发生此错误,或发布附加到此项目的其他 javascript,以便我们进一步调查。
-
这是一个猜测,但 processing.js 文档没有在这样的 PVector 上使用“set”。如果只是将向量相加以产生增量,我认为循环的主体应该只是 resForce.add() 而没有赋值。此外,可能 resForce.add 调用正在尝试访问 this.forces[i] 的属性“x”,但 this.forces[i] 没有 x,因此您可能在数组中有一些不是t 一个 PVector。
-
实际上,仔细观察一下,我认为您需要共享声明和填充 this.forces 的代码。这是相关的。
-
感谢@Mic 和 Danbopes 的回复。这是完整的代码:(khanacademy.org/computer-programming/2d-physics-lab/…)。很多事情都在不断更改/注释掉,这就是我不想分享的原因