Cas d'utilisation

Changer la valeur d'une propriété à l'aide d'une chaîne de caractère "a.b.c"

var obj = {a: {b:{c:1}}};

function setkey(o, str,v) {
  var token = str.split('.');
  var refo = o;
  for(var i = 0; i < token.length; i++) {
    var key = token[i];
    if (refo !== null && typeof refo === 'object' && key in refo) {
      if (i == token.length-1) {
        refo[key] = v;
      } else {
        refo = refo[key];
      }
    } else {
      return null;
    }
  }
  return refo;
}
setkey(obj, "a.b.c", 3);
console.log(obj); // {a: {b:{c:3}}};

Accéder à un objet global à l'aide d'une chaîne de caractères

function get(str, start) {
 start=start||this;
 return str.split('.').reduce(function(m,a) {return m[a];}, start);
}
// global context:
var a = {b:{}};
var b = get('a.b', window);
b.c = 1; 
console.log(a); // {b:{c:1}}