以下代码在使用reduce的那一行会抛出错误:
错误似乎出现在p5.js中向量
let vectors
function setup() {
createCanvas(400,400);
vectors = [];
vectors.push(createVector(100,100));
vectors.push(createVector(100,0));
vectors.push(createVector(0,100));
let s = vectors.reduce(p5.Vector.add, createVector(0,0));//error!
console.log(s.x,s.y);
}
function draw() {
vectors.forEach(v => line(0,0,v.x,v.y));
}
错误似乎出现在p5.js中向量
add
方法的代码中。错误消息如下:
p5.js说:存在错误,无法将“set”作为函数调用(位于p5.js [https://cdn.jsdelivr.net/npm/p5@vv1.4.0/lib/p5.js:91666:22]的第91666行)。
最令人困惑的是,如果将有问题的行替换为以下内容,则代码可以正常运行:let s = vectors.reduce((u,v) => p5.Vector.add(u,v), createVector(0,0));
这对于我的预期应用程序已经足够,但我想要理解错误而不仅仅是找到一个绕过它的笨方法。我的问题是:为什么直接使用p5.Vector.add
尝试reduce会失败,但将其包装在匿名函数中却成功了?