Hola:
La verdad es que yo conocía la existencia de ese tipo de asignaciones, pero nunca había visto aplicarlas.
También se pueden eliminar los puntos, y entrecorchetar cadenas que representan las variables... con el ejemplo de antes:
nombreobjeto.nombrepropiedad.nombreSubpropiedad
sería igual:
nombreobjeto["nombrepropiedad"]["nombreSubpropiedad"]
y si nombreSubpropiedad fuese un método que se quisiese ejecutar solo bastaría ponerle () detrás:
Por último, si uno no sabe los nombres de los atributos, se pueden obtener con un bucle for:
for (elemento in objeto){
//elemento es cada atributo y su valor se obtiene con
// objeto[elemento]
Saludos