Почему undefined?
входящий параметр: { foo: { bar: 1 } }
console.log(foo) // {foo: {bar: 1}}
я только разложил ваши строки в ином виде... вы видите что-нибудь?
если не увидели, то ещё спойлер
console.log(foo) // foo = {foo: {bar: 1}}

В объект foo вложен другой foo и только потом bar