所以这是我的代码:
var room = {
foo: [0, 1, 0, 0],
bar: {0: true, 1: false},
layers: [[this.foo, this.bar], [this.foo, this.bar]],
};
我正在为简单的画布游戏创建地图数据结构。问题是我的图层属性为每个元素显示为undefined
。如何正确访问图层内的foo和bar来解决这个问题?
答案 0 :(得分:1)
var foo = [0, 1, 0, 0];
var bar = {0: true, 1:false};
var room = {
foo:foo,
bar:bar,
layers:[[foo, bar], [foo, bar]]
};
评论后编辑: 我不知道如果不在对象文字之外定义输入,或者不使用对象文字符号,您将能够这样做。这是一个工作版本,没有使用对象文字表示法定义空间:
function Room(){
this.foo = [0,1,0,0];
this.bar = {0:true, 1:false};
this.layers = [[this.foo, this.bar], [this.foo,this.bar]];
}
var room = new Room();
alert("result:"+room.layers[0][0]);
答案 1 :(得分:0)
你可以使用一个getter:
var room = {
foo: [0, 1, 0, 0],
bar: {0: true, 1: false},
get layers (){ return [[this.foo, this.bar], [this.foo, this.bar]]}
};
的jsfiddle: http://jsfiddle.net/wLNEj/