错误:未捕获类型错误:无法设置未定义的属性“0”
相关代码:
var field = new Array(6);
for(var x=0; x<field.length; x++){
field[x] = new Array(12);
for(var y=0; y<field[x].length; y++){
field[x][y]= new tile();
field[x][y].type = Math.floor(Math.random()*7);
field[x][y].subtype[0]=false;//error happens when I run this line
field[x][y].subtype[1]=false;
field[x][y].subtype[2]=false;
field[x][y].subtype[3]=false;
}
}
function tile() {
var type = 0; type = 0;//int
var subtype = new Array(4);//Boolean
//+ some functions
}
我知道我错过了一些东西,但我不知道是什么。有什么帮助吗?
编辑:另外,当我添加“这个”时。在平铺对象中的“类型”和“子类型”之前,我得到了 未捕获的语法错误:意外的标记 edit#2:我收到该错误是因为我输入了
var this.
//instead of
this.
最佳答案
您需要将 tile
属性设置为 成员属性,方法是在它们前面添加 this
关键字,即
function tile() {
this.type = 0;
this.subtype = new Array(4);
}
关于javascript - 在 JavaScript 中获取数组时出现问题 TypeError : Cannot set property,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22775844/