只要通过 pixelGrid[#][#] 引用 pixelGrid,代码就会停止工作。我试过用好几种方式声明 pixelGrid,但没有改善。赋值为 0 并显示它就没问题,可是赋值为同样等于 0 的 pixelGrid[0][0],程序就会在这里突然出错。不管是在条件里访问数组、用它更新数值,还是在其他地方访问,都是这样。
var pixelGrid;
for (let row = 0; row < 9; row++) {
for (let column = 0; column < 9; column++) {
pixelGrid[row][column] = 0;
}
}
function redrawPixels() {
// Shortened for simplicity
ImageData.data[0] = 0; // Works fine.
ImageData.data[0] = pixelGrid[0][0]; // Function stops, and ctx.putImageData no longer updates canvas.
}