我做错了什么(javascript 对象) 未捕获的类型错误:无法读取未定义的属性"0"


var map = {
columns: 25,
rows: 12,
size: calculateElementSize(),
elements: function(){
var elements = [];
for(i = 0; i < this.columns; i++){
elements[i] = [];
for(j = 0; j < this.rows; j++){
elements[i][j] = {
x: 0,
y: 0,
type: "basicElement",
status: 1
}
}
}
return elements;
}
}
console.log(map.elements[0][0].x);

我的意思是在地图对象内做一组对象,有什么想法我做错了吗?提前感谢;d

console.log(map.elements(([0][0].x(;您将元素声明为函数,但没有调用它

除了没有任何calculateElementSize((的代码外,我还可以使用获得0,0的值

var map = {
columns: 25,
rows: 12,
//size: calculateElementSize(),
elements: [],
createElements: function(){
var xelements = [];
for(i = 0; i < this.columns; i++){
xelements[i] = [];
for(j = 0; j < this.rows; j++){
xelements[i][j] = {
x: 0,
y: 0,
type: "basicElement",
status: 1
}
}
}
this.elements = xelements;
},
getElement: function(c, r) {
return this.elements[c][r];
}
}
map.createElements();
console.log(map.getElement(0,0));

元素数组由createElements((函数创建,getElement((函数获取列/行项(假设我有正确的列和行(

元素是一个函数,因此不能将其作为数组读取。如果它返回(在elements函数中显式返回元素(元素,map.elements(([0][0].x可能会返回一些东西,但可能不是您想要的。

你到底希望对这个地图对象做什么?

相关内容

最新更新