В чем разница между объектами Blob и File в JS? - PullRequest
0 голосов
/ 17 апреля 2020

Как сказано в MDN Web Docs :

Объект Blob представляет собой BLOB-объект, который является файловым объектом неизменяемых необработанных данных; они могут быть прочитаны как текстовые или двоичные данные или преобразованы в ReadableStream, чтобы его методы могли использоваться для обработки данных.

Я также знаю, что объект File наследует некоторые свойства Blob, и его можно использовать практически везде, где может Blob. Но если File можно использовать в том же контексте, что и Blob, как мне выбрать между ними? Есть ли случаи, когда одно предпочтительнее другого?

1 Ответ

1 голос
/ 17 апреля 2020

Как сказано на самой странице, на которую вы ссылались:

Интерфейс File основан на Blob, наследующем функциональность BLOB-объектов и расширяющем его для поддержки файлов в системе пользователя.

File документы показывают, что в дополнение к свойствам BLOB-файлов файлы также имеют дату lastModified, name и, возможно, путь. В нем также говорится, что объекты

File обычно извлекаются из объекта FileList, возвращаемого в результате выбора пользователем файлов с использованием элемента <input> [или] из операции перетаскивания. DataTransfer объект

Всякий раз, когда вы можете выбрать , какой из них использовать, это означает, что вы создаете их самостоятельно. В отличие от конструктора Blob , конструктор File принимает необязательный аргумент name . Поэтому, когда вы создаете что-то, для чего вы даете имя файла, используйте File.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...