code: function read(reader) {
  
              var offset = this.offset;
  
              if (undefined !== offset) {
                  reader.seek(offset);
              }
  
              var me = this;
  
              this.struct.forEach(function (item) {
                  var name = item[0];
                  var type = item[1];
  
                  switch (type) {
                      case struct.Int8:
                      case struct.Uint8:
                      case struct.Int16:
                      case struct.Uint16:
                      case struct.Int32:
                      case struct.Uint32:
                          var typeName = struct.names[type];
                          me[name] = reader.read(typeName);
                          break;
  
                      case struct.Fixed:
                          me[name] = reader.readFixed();
                          break;
  
                      case struct.LongDateTime:
                          me[name] = reader.readLongDateTime();
                          break;
  
                      case struct.Bytes:
                          me[name] = reader.readBytes(reader.offset, item[2] || 0);
                          break;
  
                      case struct.Char:
                          me[name] = reader.readChar();
                          break;
  
                      case struct.String:
                          me[name] = reader.readString(reader.offset, item[2] || 0);
                          break;
  
                      default:
                          error.raise(10003, name, type);
                  }
              });
  
              return this.valueOf();
          }
docs: 读取表结构
  
  @param {Reader} reader reader对象
  @return {Object} 当前对象