在JavaScript中从头开始创建空URL对象

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在JavaScript中从头开始创建空URL对象相关的知识,希望对你有一定的参考价值。

我想使用URL对象从部件手动构造URL。

但是,它的构造函数需要传递适当的URL字符串,这不允许从空对象开始并逐步构建它。

  1. 有办法以某种方式克服这种限制吗?
  2. 是什么原因引起了这样的设计决定?
答案

您已经找到了解决方法,除了传递部分或从URL开始并对其进行变更之外别无选择。

我会尽力回答:

是什么原因引起了这样的设计决定?

到目前为止,URL最常见的用例是从URL字符串创建URL。实际上有人确实以asking for the API you are describing in the URL spec结束,讨论大多停滞不前。

我们have an API in Node.js用于从部分构造URL - 但是创建了一个仍然需要传递给URL构造函数的字符串。

所以这可能不是一个坏主意,它实际上阻止了实际上正在添加该功能的人。

另一答案

到目前为止,我发现的唯一解决方法是使用最小的正确URL初始化对象,然后覆盖它的部分(即协议和主机)。

const url = new URL('https://example.com');

url.protocol = 'http';
url.host = 'google.com';

console.log(url.toString()); // outputs: http://google.com/

但是,这个用例仍然很麻烦。

以上是关于在JavaScript中从头开始创建空URL对象的主要内容,如果未能解决你的问题,请参考以下文章

从头基于空镜像scratch创建一个新的Docker镜像

git命令入门

如何使用 AWS CLI 从头开始​​创建堆栈?

JS从头开始

0148 JavaScript 的 new关键字

background-image:url为空引发的两次请求问题