Javascript 您如何设置“0”;url";创建新响应()时?

Javascript 您如何设置“0”;url";创建新响应()时?,javascript,fetch,Javascript,Fetch,我下面的示例是为测试创建模拟响应 稍微修改一下,它看起来像这样: var data = { foo: 'bar'}; var blob = new Blob([JSON.stringify(data)], {type : 'application/json'}); var init = { "status" : 200 , "statusText" : "SuperSmashingGreat!" }; var resp = new Response(blob,init); consol

我下面的示例是为测试创建模拟响应

稍微修改一下,它看起来像这样:

 var data = { foo: 'bar'};
 var blob = new Blob([JSON.stringify(data)], {type : 'application/json'});
 var init = { "status" : 200 , "statusText" : "SuperSmashingGreat!" };
 var resp = new Response(blob,init);

console.log(resp.url)

body: (...)
bodyUsed: true
headers: Headers {}
ok: true
redirected: false
status: 200
statusText: "SuperSmashingGreat!"
type: "default"
url: ""

这在模拟数据和状态方面做得很好,但是,我还想模拟
resp.url
我不知道如何使用构造函数设置,而且[因为它是只读的]我不能在resp本身上设置它

resp.url 
>> ""
resp.url = 'www.test.com'
>> "www.test.com"
resp.url
>> ""

那么如何设置url呢?

因为
url
实际上是由继承的getter定义的,所以可以使用
Object.definedProperty
直接在
响应
实例上定义一个简单的值属性,该属性会隐藏继承的getter属性:

Object.defineProperty(resp, "url", { value: "foobar" });

对于您自己的理解,您可以通过查看
Response.prototype.url
的属性描述符来查看继承的getter:

Object.getOwnPropertyDescriptor(Object.getPrototypeOf(new Response()), 'url')
> {get: ƒ, set: undefined, enumerable: true, configurable: true}

检查此文档链接:
响应。url
只有
只读权限
Response.url
为只读,是否可以用值初始化?@lonewarrior556检查此示例@chintankotadiya,该示例实际上调用了fetchCool!非常感谢。