奇怪的JS函数,函数与其内部函数得出的结果不同function requestH(img){\x05var imgH;\x05var imgObj=new Image();\x05imgObj.src=img;imgObj.onload=function (){imgH=imgObj.height;alert(imgH);//此处能够得到数值}\x05alert(imgH);//此

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/15 09:09:28

奇怪的JS函数,函数与其内部函数得出的结果不同function requestH(img){\x05var imgH;\x05var imgObj=new Image();\x05imgObj.src=img;imgObj.onload=function (){imgH=imgObj.height;alert(imgH);//此处能够得到数值}\x05alert(imgH);//此
奇怪的JS函数,函数与其内部函数得出的结果不同
function requestH(img){
\x05var imgH;
\x05var imgObj=new Image();
\x05imgObj.src=img;
imgObj.onload=function (){
imgH=imgObj.height;
alert(imgH);//此处能够得到数值
}
\x05alert(imgH);//此处不知道为何,返回"undefined"
}

奇怪的JS函数,函数与其内部函数得出的结果不同function requestH(img){\x05var imgH;\x05var imgObj=new Image();\x05imgObj.src=img;imgObj.onload=function (){imgH=imgObj.height;alert(imgH);//此处能够得到数值}\x05alert(imgH);//此
onload是一个事件,要执行后面的function需要载入完毕才行,所以当一面执行到
alert(imgH);//此处不知道为何,返回"undefined"
时图片对象imgObj还没有加载完,所以想弹出"undefined",
等到imgObj加载完的时候,触发onload事件,并执行onload绑定的函数,该函数执行之后imgH被赋值了,所以后面又弹出一个具有height值警告框.
  alert(imgH);//此处能够得到数值