Я забыл указать, что object может быть абсолютно любым, в т.ч. содержать массивы, которые в свою очередь могут содержать объекты и т.п. Поэтому, к примеру, такой вариант не пройдет:
var object = {
props: [
{num: "one"},
{num: "two"},
{num: "three"},
{num: "four"}
]
};
function someFunction(x) {
var a = x.split('.');
var xValue = window[a[0]];
for (var i=1; i<a.length; i++) {xValue = xValue[a[i]]}
alert(x + " = " + xValue);
}
alert(object.props[2].num); // "three"
someFunction("object.props[2].num"); // TypeError: xValue is undefined