2011-02-04 63 views
0
內兄弟值

因此,這裏是我的代碼:訪問屬性列表

var room = { 
    foo: [0, 1, 0, 0], 
    bar: {0: true, 1: false}, 
    layers: [[this.foo, this.bar], [this.foo, this.bar]], 
}; 

我創建的地圖數據結構簡單的帆布遊戲。問題是我的圖層屬性爲undefined爲每個元素。我如何正確訪問圖層中的foo和bar來解決這個問題?評論後

回答

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

這是可行的,但有什麼辦法可以直接作爲兄弟姐妹訪問foo和bar嗎? – theabraham 2011-02-04 20:44:04

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/