为什么Blob构造函数只将数组作为第一个参数?

时间:2019-01-12 14:01:37

标签: javascript

只是想把我的头缠在Blob上

阅读以下内容:https://developer.mozilla.org/en-US/docs/Web/API/Blob没有说明为什么第一个参数必须是数组。

如果我确实在该数组中提供了多个对象,那么它只是将它们首尾相连地缝合在一起,这似乎是强制执行每个blob创建的一个很奇怪的功能

New Blob(["a", "b"])
is the exact same as 
New Blob(["a" + "b"])

为什么?

1 个答案:

答案 0 :(得分:1)

并非每个输入都可以用+符号连接。例如,您可能要串联2个斑点:

const blob = new Blob([new Blob(['a']), new Blob(['b'])])
// ab

与以下不同:

const blob = new Blob([new Blob(['a']) + new Blob(['b'])])
// [object Blob][object Blob]

使用数组作为输入会更加灵活,因为Blob实现将照顾到给定输入的串联。