Javascript recursive object is defined test
First of all, what you are doing is not recursive (self-calling). It's iterative (looping).

And here's a shorter version of it:

_objectIsDefined = function (obj, path) {

  if (!obj) return false;           // no object, return false
  if (obj &amp;&amp; !path) return true;    // has object, no path, return true

  // I suggest var per variable for clarity
  var props = path.split(".");
  var currentObject = obj;

  for (var i = 0; i &lt; props.length; ++i) {
    //store the next property, evaluate and break out if it's undefined
    currentObject = currentObject[props[i]];
    if (!currentObject) return false;
  }

  // If the loop did not break until the last path, then the path exists
  return true;
}