• 締切済み

値を取得できない

var hoge = {   piyo: {     bar = /* ここにhogehoge.fooの値を入れたい */   },   foo: "Hello, World!" } でhoge.piyo.barからhoge.fooの値を取得したいのですが、 hoge.fooとやってもthis.fooとやっても取得できません。 どうすれば取得できるのでしょうか?

みんなの回答

  • arexis
  • ベストアンサー率66% (66/99)
回答No.3

var hogeがまだ定義が済む前の段階なので参照できないのかも? 遠まわしになりますが ■宣言が済んでから入れる var hoge = { piyo:{}, foo:"Hello, World!" } hoge.piyo.bar = hoge.foo; alert(hoge.piyo.bar) ■使う時にeval評価させる var hoge = { piyo:{ bar:'hoge.foo' }, foo:"Hello, World!" } alert( eval(hoge.piyo.bar) ) ■関数化して () で呼び出す var hoge = { piyo:{ bar:function(){ return hoge.foo } }, foo:"Hello, World!" } alert( hoge.piyo.bar() )

noname#108740
質問者

お礼

やはりそういう方法しかありませんか・・・ 回答ありがとうございました

noname#84373
noname#84373
回答No.2

ごめん!これしか思い浮かばない <html><body> <script> var hoge = { foo: "Hello, World!" } hoge['piyo']={bar:hoge['foo']}; alert(hoge.piyo.bar); function hoge2(){ this.foo = "Hello, World!"; this.piyo = {bar: this.foo }; } hoge = new hoge2(); alert(hoge.piyo.bar); </script>

noname#84373
noname#84373
回答No.1

bar = を bar: に

noname#108740
質問者

補足

すいません。記述ミスです(汗) hogehoge→hoge bar =→bar: として回答お願いします。

関連するQ&A