Acessar objetos aninhados em JavaScript com segurança

Eu tenho a estrutura de dados baseada em json com objetos contendo objetos aninhados. Para acessar um determinado elemento de dados, encadeava referências a propriedades de objetos juntas. Por exemplo:

var a = b.c.d;

Se b ou b.c é indefinido, isso falhará com um erro. No entanto, eu quero obter um valor, se existir, caso contrário, apenas indefinido. Qual é a melhor maneira de fazer isso sem ter que verificar se todos os valores da cadeia existem?

Eu gostaria de manter esse método o mais geral possível, então não preciso adicionar muitos métodos auxiliares como:

var a = b.getD();

ou

var a = helpers.getDFromB(b);

Eu também quero tentar evitar construções try / catch, pois isso não é um erro, então usar try / catch parece mal colocado. Isso é razoável?

Alguma ideia?

questionAnswers(6)

yourAnswerToTheQuestion