2015-04-11 3 views
0

Итак, я пытался инициализировать переменную, используя этот фрагмент кода,Как мне получить доступ к ресурсу другого вложенного объекта?

var foo = {bar: {baz: 3}, qux: {fooAgain: foo.bar.baz + 5}} 

Но я получаю ошибку TypeError: Cannot read property 'bar' of undefined

Как получить доступ к собственности baz от qux?

+0

Вы не можете в объявлении литерала объекта. Пока еще нет доступа к файлу fooAgain. – Bergi

ответ

1

Edited ответ в ответ на ваш комментарий:

var bar = {baz: 3}; 
var foo = {bar: bar, qux: {fooAgain: bar.baz + 5}}; 

Таким образом, вы сначала создать переменную бар, а затем создать переменную Foo, используя его.

Explaination: Ваш исходный код не работает, потому что вы пытаетесь получить доступ к панели свойств объекта Foo, прежде чем объект Foo фактически инициализирован.

+0

Это не то, что я намеревался. Я хочу одну переменную со следующими полями: 'bar' и' qux'. 'bar' - это сам объект с одним полем' baz', intialized до 3. И 'qux' - это объект с одним полем' fooAgain', который я хочу инициализировать до 5 плюс 'baz'. Я хотел бы знать, как получить доступ к 'baz' из' fooAgain'. – sguzman

+0

Я предполагаю, что это был бы единственный возможный способ сделать это. – sguzman

Смежные вопросы