你好,我需要从函数中获取变量 我回答未定义
function etr() {
var img = new Image();
img.onload = paramsImg;
img.src = picFile.result;
function paramsImg() {
return img.height;
};
};
var vvvr = etr();
alert(vvvr);

答案 0 :(得分:1)
您的功能etr
不会返回任何内容。我看到你试图从onload的事件处理程序返回,但是只返回paramsImg
函数而不是etr
(在图像加载之前已经返回)。您应该使etr
接受回调函数或返回Promise,以便在 图像加载后提醒图像高度 。这是一个Promise的例子:
function etr() {
return new Promise( ( resolve, reject ) => {
var img = new Image();
img.onload = _ => resolve(img.height);
img.onerror = reject;
img.src = picFile.result;
} );
};
var picFile = { result: 'https://dummyimage.com/600x1234/000/fff' };
(async function ( ) {
var vvvr = await etr();
alert(vvvr);
})( );

答案 1 :(得分:1)
function etr() {
var img = new Image();
img.onload = paramsImg;
img.src = picFile.result;
function paramsImg() {
return img.height;
};
};
function etr(picFile){
this.paramsImg = function(){
return img.height;
};
var img = new Image();
img.onload = this.paramsImg;
img.src = picFile.result;
}
picfile = {
result: 10
}
var vvvr = new etr(picfile);
alert(vvvr.paramsImg());