code: function overwrite(thisObj, thatObj, fields) {
  
              if (!thatObj) {
                  return thisObj;
              }
  
              // 这里`fields`未指定则仅overwrite自身可枚举的字段，指定`fields`则不做限制
              fields = fields || Object.keys(thatObj);
              fields.forEach(function (field) {
                  // 拷贝对象
                  if (
                      thisObj[field] && typeof thisObj[field] === 'object'
                      && thatObj[field] && typeof thatObj[field] === 'object'
                  ) {
                      overwrite(thisObj[field], thatObj[field]);
                  }
                  else {
                      thisObj[field] = thatObj[field];
                  }
              });
  
              return thisObj;
          }
docs: 设置覆盖相关的属性值
  
  @param {Object} thisObj 覆盖对象
  @param {Object} thatObj 值对象
  @param {Array.<string>} fields 字段
  @return {Object} thisObj