Javascript - 未捕获的TypeError:无法读取未定义的属性'show'

时间:2017-07-13 02:19:46

标签: javascript arrays p5.js

我在p5.js中制作了一个非常简单的绘图Web应用程序并遇到了错误。 错误说它在第10行,但我没有看到错误?也许我在对阵列做错了。

var pixels = [];
var drawing = false;

function setup() {
    createCanvas(windowWidth, windowHeight);
}
function draw() {
    background(0);
    for(var i = pixels.length - 1;i >= 0;i++) {
        pixels[i].show();
    }
    if(drawing) {
        var nP = new Pixel(mouseX, mouseY);
        pixels.push(nP);
    }
}

function mousePressed() {
    drawing = true;
}
function mouseReleased() {
    drawing = false;
}

function Pixel(x, y) {
    this.x = x;
    this.y = y;

    this.show = function() {
        push();
        noStroke();
        fill(255);
        rect(this.x, this.y, 10, 10);
        pop();
    }
}

1 个答案:

答案 0 :(得分:0)

问题在于行 -

for(var i = pixels.length - 1;i >= 0;i++)

为了向后遍历数组,您需要递减计数器,而不是递增计数器。所以,正确的循环应该是 -

for(var i = pixels.length - 1;i >= 0;i--)