2011-02-04 7 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

0

あなたがゲッターを使用することができます。

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/

関連する問題