无意中写了以下代码:<script type="text/javascript">
var a = function () {
alert("a2")
};
function a(){
    alert("a3"); 
};
a();
</script>
结果弹出来的是“a2”,求高人指点,不解中

解决方案 »

  1.   

    个人估计:应该是你第二次定义的function a()中的a是上面定义的那个a;你如果两次定义的方式是一样的,那后面的就会覆盖前面的
      

  2.   


    好像真是这样。学习ing~~
      

  3.   

    var a = function () { .........2
        alert("a2") 
    };
    function a(){ .........1
        alert("a3"); 
    };
    a(); .........3js解释器先加载用function声明的函数,而函数表达式声明的函数只有执行到时才加载,所以执行的顺序是1,2,3,这样2就会把1给覆盖了