javascript - 我如何判断一个 Javascript 对象是否是一个文件?

标签 javascript file prototype

我有一个函数可以操作一个对象,该对象包含一个文件类型的“上传”成员。我想检测到这个事实,这样我就可以忽略它并跳过所有这种类型的对象。

我在控制台中尝试了很多操作,但似乎没有返回“true”。这是我在控制台断点内进行的徒劳尝试的记录:

> values.avatar
{upload: File}
> values.avatar.upload
File {name: "29_Drawing Hands by Escher.jpg", lastModified: 1446580115000, lastModifiedDate: Tue Nov 03 2015 14:48:35 GMT-0500 (Eastern Standard Time), webkitRelativePath: "", size: 1314300, …}
> values.avatar.upload.isPrototypeOf(File)
false
> File
ƒ File() { [native code] }
> File.prototype
File {constructor: ƒ, …}
values.avatar.upload.isPrototypeOf(File.prototype)
false
> values.avatar.upload.prototype 
undefined
> File.isPrototypeOf
ƒ isPrototypeOf() { [native code] }
> File
ƒ File() { [native code] }
> values.avatar
{upload: File}
> File
ƒ File() { [native code] }
> File.__proto__
ƒ Blob() { [native code] }
> values.avatar.upload.__proto__
File {constructor: ƒ, …}
values.avatar.upload.isPrototypeOf(File.__proto__)
false
> values.avatar.upload.isPrototypeOf(Blob.__proto__)
false

显然,我对原生类型和原型(prototype)在 Javascript 中的工作原理缺乏基本的了解。

最佳答案

您可以使用 instanceof 检查它关键字。

if (values.avatar.upload instanceof File)
  // yes, it's a File type.
else
  // no, it's not.

关于javascript - 我如何判断一个 Javascript 对象是否是一个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54972161/

相关文章:

javascript - Textbox 类 Onchange 事件监听器不适用于多个类

JavaScript 无法将印地语/阿拉伯数字转换为实数值变量

c - 'stream' 在 C 中是什么意思?

javascript - 揭示模块/原型(prototype)模式

javascript - 如何为此 Firebase 响应 JSON 构建 Typescript 接口(interface)?

javascript - 取消选中另一个按钮上的选中复选框单击

c - 程序使用 fgets 停止读取文件

python - 从python中的文件中读取逗号分隔的元组

javascript - __proto__ 与 [[Prototype]] 有何不同?

javascript - 没有 new 的 JS Power Constructor 和 instanceof