我无法理解它是如何可能的。这些属性分配方法(image.onload = function())&方法写后..
image.src="barn.jpg";
canvas.width=500;
但是在method.what中使用这些属性的变量Scope呢?
var canvas=document.getElementById("myConvas");
var ctx=canvas.getContext("2d");
var image=new Image();
image.onload=function(){
ctx.drawImage(image,0,0,canvas.width,canvas.height);
}
image.src="barn.jpg";
canvas.width=500;
答案 0 :(得分:1)
image.src
会导致barn.jpg 开始下载,但浏览器也会继续执行image.src
之后的所有代码。
因此,在下载图像时,浏览器也会执行canvas.width=500
。
图像完全加载后,它会返回并执行image.onload
函数内的任何代码。
因此,您的代码实际按此顺序执行:
image.onload
。但浏览器实际上并没有执行.onload代码。