whole_func_string: function deepClone(obj) {
    if (obj == null || typeof obj !== 'object') {
      return obj;
    }
    var cloned = obj.constructor();
    for (var key in obj) {
      if (obj.hasOwnProperty(key)) {
        cloned[key] = deepClone(obj[key]);
      }
    }
    return cloned;
  }
func_code_string: function deepClone(obj) {
    if (obj == null || typeof obj !== 'object') {
      return obj;
    }
    var cloned = obj.constructor();
    for (var key in obj) {
      if (obj.hasOwnProperty(key)) {
        cloned[key] = deepClone(obj[key]);
      }
    }
    return cloned;
  }
func_documentation_string: Deep clone an object
  @param {object} obj
  @returns {object}