代码顺序问题

今天在项目中碰到一个代码顺序问题,先记录下来,怕以后又忘了,原因如下:

fn();

function fn(){alert(11)}//代码没问题,会alert的11

后来改成:

obj.fn()

var obj={

   fn:function(){

    alert(11)

  }

}

结果就报错了,将对象的定义放到调用方法之前就不会报错

原因:解释程序会执行两步骤,第一步:先对var声明的变量和function函数进行处理(这时候obj=undefined,function还是函数),所以执行obj.fn()会报错,第二步:执行代码

posted @ 2011-03-24 11:04  xiaoxiaohui  阅读(181)  评论(0编辑  收藏  举报