Если вам нужно получить доступ к другому вложенному ключу, не зная его во время кодирования (обращаться к ним будет тривиально), вы можете использовать средство доступа к записи массива:
var part1name = someObject['part1']['name'];
var part2quantity = someObject['part2']['qty'];
var part3name1 = someObject['part3'][0]['name'];
Они эквивалентны точечной записиAccessor и может варьироваться во время выполнения, например:
var part = 'part1';
var property = 'name';
var part1name = someObject[part][property];
эквивалентно
var part1name = someObject['part1']['name'];
или
var part1name = someObject.part1.name;
Я надеюсь, что этот адрес ваш вопрос ...
РЕДАКТИРОВАТЬ
Я не буду использовать строку для поддержки своего рода xpath query для доступа к значению объекта.Так как вам нужно вызвать функцию для анализа запроса и получения значения, я бы следовал по другому пути (не:
var part1name = function(){ return this.part1.name; }
var part2quantity = function() { return this['part2']['qty']; }
var part3name1 = function() { return this.part3[0]['name'];}
// usage: part1name.apply(someObject);
или, если вас не устраивает метод apply
var part1name = function(obj){ return obj.part1.name; }
var part2quantity = function(obj) { return obj['part2']['qty']; }
var part3name1 = function(obj) { return obj.part3[0]['name'];}
// usage: part1name(someObject);
Функции короче, понятнее, интерпретатор проверяет их на наличие синтаксических ошибок и т. Д.
Кстати, я чувствую, что простого назначения, выполненного в нужное время, будет достаточно...