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?