为什么drawImage没反应?

 <body>
<script>
var canvas = document.createElement("canvas");

var ctx = canvas.getContext("2d");

canvas.width = 812;

canvas.height = 624;

document.body.appendChild(canvas);


var bgImage = new Image();

bgImage.src = "images/bg.png";


ctx.drawImage(bgImage,10,10);



</script>
</body>

上面的代码不能在画布 上加载图片,但加个onload就可以了,这是什么原因啊?
bgImage.onload = function(){
ctx.drawImage(bgImage,10,10);}

图片未加载完调用drawImage不会显示。。所以要在onload事件中绘制

http://johncookie.iteye.com/blog/1289982

我也想到是图片未加载,但下面这句代码是写在前面的,
bgImage.src = "images/bg.png";
为什么调用时还没加载完呢,不是一句一句执行下来的吗?搞不明白js加载的机理,哪位仁兄能解释一下吗?