为了账号安全,请及时绑定邮箱和手机立即绑定

FileReader构造函数实现图片上传预览遇到问题,请求大牛解答

FileReader构造函数实现图片上传预览遇到问题,请求大牛解答

chinanavy 2018-06-11 23:29:31
<body> <input type="file" id="file" multiple="multiple"/> <script> var file=document.querySelector('#file'); file.onchange=function(){ var files =event.target.files; for(var i=0;i<files.length;i++){ var fileReader=new FileReader(); fileReader.readAsDataURL(files[i]); fileReader.onload=function(){ var img =document.createElement('img'); img.src= this.result; //此处的this为什么不能换成fileReader document.body.appendChild(img); } } } </script> </body> 当上传多张图片时代码备注行的关键字this 为什么不能换成FileReader,不是在循环里变量FileReader每次循环都会代表新的对象吗?
查看完整描述

1 回答

?
码农2号

TA贡献151条经验 获得超48个赞

this的指向的确是FileReader,但是是load之后的FileReader。如果用FileReader,则会取外面的还没有load的FileReader。

查看完整回答
反对 回复 2018-06-12
  • chinanavy
    chinanavy
    哥,为什么此处的fileReader还未加载,不是从上到下执行下来,他是读取完当前循环的内容后加载完才执行onload的吗
  • 码农2号
    码农2号
    我打印看的
  • chinanavy
    chinanavy
    哎,就是不知道原理呀,好像是异步函数在for里边的特性
  • 1 回答
  • 0 关注
  • 1094 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信