Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/467.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 访问属性列表中的同级值_Javascript - Fatal编程技术网

Javascript 访问属性列表中的同级值

Javascript 访问属性列表中的同级值,javascript,Javascript,这是我的代码: var room = { foo: [0, 1, 0, 0], bar: {0: true, 1: false}, layers: [[this.foo, this.bar], [this.foo, this.bar]], }; 我正在为一个简单的画布游戏创建一个地图数据结构。问题是,对于每个元素,“我的图层”属性显示为“未定义”。如何正确访问层内的foo和bar来解决此问题 var foo = [0, 1, 0, 0]; var bar = {0: t

这是我的代码:

var room = {
    foo: [0, 1, 0, 0],
    bar: {0: true, 1: false},
    layers: [[this.foo, this.bar], [this.foo, this.bar]],
};
我正在为一个简单的画布游戏创建一个地图数据结构。问题是,对于每个元素,“我的图层”属性显示为“未定义”。如何正确访问层内的foo和bar来解决此问题

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]);
您可以使用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:

这会起作用,但有没有办法让我作为兄弟姐妹直接访问foo和bar?