js中this指向问题

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);//base64
this.upImgLUrl=oFREvent.target.result;
};
el.target.value=''
console.log(this.upImgLUrl);
},
这里怎么把oFREvent.target.result传出去到全局?console.log(this.upImgLUrl);打印出来是空
一只名叫tom的猫
浏览 370回答 2
2回答

沧海一幻觉

你后边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);//base64varupImgLUrl=oFREvent.target.result;aaa(upImgLUrl);};el.target.value='';}functionaaa(url){console.log(url)}

素胚勾勒不出你

改用箭头函数oFReader.onload=(oFREvent)=>{//console.log(oFREvent.target.result);//base64this.upImgLUrl=oFREvent.target.result;};
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript