代码顺序问题
今天在项目中碰到一个代码顺序问题,先记录下来,怕以后又忘了,原因如下:
fn();
function fn(){alert(11)}//代码没问题,会alert的11
后来改成:
obj.fn()
var obj={
fn:function(){
alert(11)
}
}
结果就报错了,将对象的定义放到调用方法之前就不会报错
原因:解释程序会执行两步骤,第一步:先对var声明的变量和function函数进行处理(这时候obj=undefined,function还是函数),所以执行obj.fn()会报错,第二步:执行代码