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

js中this指向问题

js中this指向问题

一只名叫tom的猫 2019-05-24 10:14:25
fileChange(el){if(!el.target.files[0].size)return;//this.fileList(el.target);letfile=el.target.files[0];letoFReader=newFileReader();oFReader.readAsDataURL(file);oFReader.onload=function(oFREvent){//console.log(oFREvent.target.result);//base64this.upImgLUrl=oFREvent.target.result;};el.target.value=''console.log(this.upImgLUrl);},这里怎么把oFREvent.target.result传出去到全局?console.log(this.upImgLUrl);打印出来是空
查看完整描述

2 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

你后边console.log(this.upImgLUrl);肯定打印不出来的,首先oFReader.onload你可以把它看做是一个异步事件,在外面直接获取是获取不了onload里面的赋值的,你可以在onload里面赋值后调用函数把oFREvent.target.result传给函数,然后在函数里面获取
functionfileChange(el){
letfile=el.target.files[0];
letoFReader=newFileReader();
oFReader.readAsDataURL(file);
oFReader.onload=function(oFREvent){
//console.log(oFREvent.target.result);//base64
varupImgLUrl=oFREvent.target.result;
aaa(upImgLUrl);
};
el.target.value='';
}
functionaaa(url){
console.log(url)
}
                            
查看完整回答
反对 回复 2019-05-24
?
素胚勾勒不出你

TA贡献1827条经验 获得超9个赞

改用箭头函数
oFReader.onload=(oFREvent)=>{
//console.log(oFREvent.target.result);//base64
this.upImgLUrl=oFREvent.target.result;
};
                            
查看完整回答
反对 回复 2019-05-24
  • 2 回答
  • 0 关注
  • 369 浏览
慕课专栏
更多

添加回答

举报

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