3

我已经检查了具有相同问题的其他问题,但它们不适用于我的。

我收到错误消息:Cannot set property '0' of undefined使用我的 JavaScript;我正在使用谷歌浏览器。

var thisInstance = new Grid(100,100);
thisInstance.initGrid();

function Grid(maxX, maxY) {
    this.grid     = new Array();
    this.gridMaxX = maxX;
    this.gridMaxY = maxY;

    this.initGrid = function() {
        for(var i = 0; i < this.gridMaxX; i++) {
            this.grid[i] = new Array();
        }
    }
}

当我打电话时我得到了错误: thisInstance[1][0] = 1;

请询问您是否需要更多信息!

4

2 回答 2

6

触发错误是因为您试图访问[0]未定义的对象。

代替

thisInstance[1][0] = 1;

经过

thisInstance.grid[1][0] = 1;

thisInstance只是 的一个实例Grid,而不是数组。

于 2013-08-12T04:54:05.957 回答
-1

在这部分代码中:

this.initGrid = function() {
    for(var i = 0; i < this.gridMaxX; i++) {
        this.grid[i] = new Array();
    }
}

this.initGrid并且this.grid不要引用同一个对象“this”。

于 2013-08-12T04:50:47.703 回答