代码顺序问题

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

fn();

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

后来改成:

obj.fn()

var obj={

   fn:function(){

    alert(11)

  }

}

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

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

原文地址:https://www.cnblogs.com/xiaohui108/p/1993551.html