gpt4 book ai didi

javascript - "Cannot set property of undefined",即使数组已经初始化

转载 作者:行者123 更新时间:2023-11-30 09:40:26 25 4
gpt4 key购买 nike

我想创建一个二维对象数组,然后设置一个元素的属性值。

var maze=new Maze(3);
maze.resetField();

function Maze(size){
this.size=size;
this.xPos=0;
this.yPos=0;
this.field=[];
this.resetField=function(){
this.field=[];
this.xPos=0;
this.yPos=0;
var row;
var newWord;
var newPlace;
for(rowCtr=0;rowCtr<this.size;rowCtr++){
row=[];
for(r=0;r<this.size;r++){
newWord="rowCtr"+rowCtr+"r"+r;
newPlace=Place(newWord);
row[r]=newPlace;
}
this.field.push(row);
}
treasureX=1;
treasureY=1;
this.field[treasureY][treasureX].word="treasure";
}

}

function Place(word){
this.word=word;
this.walls=[];
this.addWall=function(route){
this.walls.add(route);
}
}

当代码到达这一行时:

this.field[treasureY][treasureX].word="treasure";

我收到这个错误:

Uncaught TypeError: Cannot set property 'word' of undefined

但是因为我已经用嵌套的 for 循环初始化了所有数组元素,所以 this.field[treasureY][treasureX] 不应该被定义为Place 的实例?

最佳答案

我建议使用 new Place 的新实例。

newPlace = new Place(newWord);
// ^^^

关于javascript - "Cannot set property of undefined",即使数组已经初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41376996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com