code: function _clone(o) {
          if (o===null || /undefined|string|number|function/.test(typeof o)) return o;
          var returnObj, v, key;
          returnObj = Array.isArray(o) ? [] : {};
          for (var key in o) {
            v = o[key];
            returnObj[key] = (typeof v === "object") ? _clone(v) : v;
          }
          return returnObj;
        }
docs: http://stackoverflow.com/a/25921504