Fetch API 提供了两种不太一样的方式用于创建 Request 对象的副本:使用 Request 构造函数和使用 clone() 方法。
使用 Request 构造函数克隆
将 Request 实例作为 input 参数传给 Request 构造函数,会得到该请求的一个副本:
let r1 = new Request('https://foo.com');
let r2 = new Request(r1);
console.log(r2.url); // https://foo.com/
如果再传入 init 对象,则 init 对象的值会覆盖源对象中同名的值:
let r1 = new Request('https://foo.com');
let r2 = new Request(r1, {method: 'POST'});
console.log(r1.method); // GET
console.log(r2.method); // POST
这种克隆方式并不总能得到一模一样的副本。最明显的是,第一个请求的请求体会被标记为'已使用':
let r1 = new Request('https://foo.com', {
method: 'POST',
body: 'foobar'
});
let r2 = new Request(r1);
console.log(r1.bodyUsed); // true
console.(r2.);

