code: function(xhrObj) {
      var headers = {}, header;
      // code from https://github.com/developit/unfetch/blob/master/src/index.js
      xhrObj.getAllResponseHeaders().replace(/^(.*?):\s*([\s\S]*?)$/gm, function(m, key, value) {
        header = headers[key];
        headers[key] = header ? header + ',' + value : value;
      });
      return {
        status: xhrObj.status,
        statusText: xhrObj.statusText,
        url: xhrObj.responseURL,
        text: xhrObj.responseText,
        responseType: xhrObj.responseType,
        headers: headers,
        ok: function() { return (xhrObj.status/200|0) == 1; },    // 200-399
        json: function() { return JSON.parse(xhrObj.responseText); },
        xml: function() { return xhrObj.responseXML; },
        blob: function() { return new Blob([xhrObj.response]); }
      };
    }
docs: Result: the function to get `Result` instance. The request result object.
  - xhrObj: the xhr obj which can get the xhr result.
  
  How to use it? if `r` is the instance of `Result`.
  var r_json = r.json();
  var status = r.status_code;
  var headers = r.headers;