gpt4 book ai didi

javascript - javascript中FileList中的项目和长度是什么

转载 作者:行者123 更新时间:2023-11-28 01:23:59 27 4
gpt4 key购买 nike

我有一个上传文件的小应用程序:

<html>
<script type="text/javascript">
var upload = function(){
alert(document.getElementById('up_file').files[length]);
};
</script>
<body>

<input type='file' id='up_file' />
<input type='button' value='Submit' onclick="upload();" />
<p id="p"></p>

</body></html>

(很短)

请继续在代码编辑器中复制并粘贴此内容,然后在谷歌中打开。在谷歌浏览器中打开它后,打开它的开发者工具并在它的控制台中写入它

document.getElementById('up_file').files

然后返回

FileList{0:File, Length:1, item:function}(请展开此对象)

现在,当我们必须上传文件并想要获取该文件的名称时,我们必须编写代码document.getElementById('up_file').files[0].name它返回的文件名是flower.jpg

案例1

当您展开对象FileList时,您会注意到有一个属性名称length。现在,当您输入 document.getElementById('up_file').files[length] 时,它应该返回 1,因为当您展开 FileList 对象时,您已经看到了它们的属性 length 是 1,但意外的是,当我们编写 document.getElementById('up_file').files[length] 时,它返回另一个对象,然后是 1 !该对象是:

文件 {webkitRelativePath: "", lastModifiedDate: Fri Aug 30 2013 13:42:08 GMT+0530 (印度标准时间),名称:“Creek.jpg”,类型:“image/jpeg”,大小:264409…}

如果我们编写 document.getElementById('up_file').files[length].name ,它会返回与 document.getElementById('up_file') 返回的内容相同的内容。 files[0].name 这是该文件的名称!

问题:

1) 为什么当我们写document.getElementById('up_file').files[length]时,javascript会返回一个包含文件数量长度的对象?

案例2

在该 FileList 对象中,在展开它之前有另一个属性名称 item 但当您展开 FileList 对象时,那里没有属性名称为 item 但当您进一步扩展 FileList 对象时,您可以看到 item(可能这是一个构造函数,我不确定,可能是 50%)。

看,typeof __proto__是一个对象,然后可以使用点(.)国家访问项目,但当我编写__proto__时,它总是返回undefined。项目。我不会进一步解释,因为我已经脱离了我的观点......

问题:

1) 这是什么元素?

2}如何获取__proto__对象的属性?

<小时/>

实际上我很困惑,当我在互联网上搜索时,我变得更加困惑!您可能不喜欢这个问题,因为它......您知道有点令人困惑

<小时/>

感谢您的所有回答。

最佳答案

document.getElementById('up_file').files[length]

此问题与访问文件的属性有关。

JS 中有两种访问对象属性的方式。

[]数组类型表示法 -使用文字字符串或包含该字符串的变量定义索引。

files['length']

var lengthProp = 'length';
files[lengthProp]

.符号-
只需使用点访问属性
files.length

1) 其返回对象的原因是 files是一个数组。并且索引长度(javascript将其读取为 undefined variable )实际上是未定义的。对于数组的未定义索引,浏览器返回数组中的第一项。这是第一个文件对象。

2)通过扩展,我认为您的意思是在控制台中查看该对象。 __proto__属性实际上是对象原型(prototype)的访问器。对于 files对象原型(prototype)未定义。控制台显示为 __proto__到构造函数。在 JS 中它实际上是未定义的

关于javascript - javascript中FileList中的项目和长度是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22943833/

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