gpt4 book ai didi

javascript - 为什么 FileList 对象不是数组?

转载 作者:IT王子 更新时间:2023-10-29 03:06:05 24 4
gpt4 key购买 nike

文档:https://developer.mozilla.org/en-US/docs/Web/API/FileList

为什么 FileList 是对象而不是数组?它拥有的唯一属性是 .length,它拥有的唯一方法是 .item(),这是多余的(fileList[0] === fileList.项目(0)).

最佳答案

嗯,可能有几个原因。首先,如果它是一个数组,您可以修改它。您不能修改 FileList 实例。其次但相关的是,它可能(很可能是)浏览器数据结构的 View ,因此一组最小的功能使实现更容易提供它。

您可以通过 a = Array.from(theFileList)(这是一个 ES2015 方法,但填充它很简单)或通过 a = Array.prototype 将其转换为数组。 slice.call(theFileList).

2018 年更新: 不过有趣的是,the specFileList 上有一条注释:

The FileList interface should be considered "at risk" since the general trend on the Web Platform is to replace such interfaces with the Array platform object in ECMAScript [ECMA-262]. In particular, this means syntax of the sort filelist.item(0) is at risk; most other programmatic use of FileList is unlikely to be affected by the eventual migration to an Array type.

我觉得那张纸条很奇怪。我认为趋势是朝着 iterable 方向发展,而不是 Array — 例如对 NodeList 的更新将其标记为 iterable 以与扩展语法、for-offorEach 兼容。

关于javascript - 为什么 FileList 对象不是数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25333488/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com