JavaScript - File是File的实例,但`instanceof File`为false

时间:2014-09-05 02:07:04

标签: javascript file inheritance prototype instanceof

我有<input type="file">选择了本地文件,我想将其作为文件上传到服务器,而不是Blob。我用jQuery(元素然后.files[0].prop('files')[0])抓住它。

除了一个指示外,该对象的原型是File:

Object.getPrototypeOf(file) // => File {slice: function}
file.__proto__              // => File {slice: function}
file.constructor            // => function File() { [native code] }
file.constructor.prototype  // => File {slice: function}

然而:

file instanceof File        // => false
file instanceof Blob        // => true

是什么给出的?

2 个答案:

答案 0 :(得分:1)

inf3rno的评论得出答案 - 我的网络应用程序覆盖了File变量。

答案 1 :(得分:0)

我遇到类似问题,我在页面开始渲染时在File变量中保存OriginFile,但file instanceof OriginFile仍然给我false。但是这个例子http://jsfiddle.net/drzfmgba/令人难以置信地在同一个浏览器中运行(Mac Chrome 41)。

无论如何......我通过Object.prototype.toString.call(file) === '[object File]'解决了这个问题。