3

同じ問題で他の質問を確認しましたが、私の場合はうまくいきません。

次のエラーが表示されます: Cannot set property '0' of undefinedwith my JavaScript; Google Chrome を使用しています。

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」を参照しthis.gridないでください。

于 2013-08-12T04:50:47.703 に答える