定义函数有三种方式:1,function fun()这种叫函数申明;2,var fun=function()这种叫函数表达式;3,var fun=new Function()也叫函数表达式。
在同一个执行环境中,函数申明不管是在什么位置,都会被提升至代码的最前面,即便前面是函数表达式,这个是js的规则。
例题:
function fun (){ alert(0); } fun(); var fun = function (){ alert(1); } fun(); var fun =function (){ alert(2); } fun(); function fun (){ alert(3); } fun();
答案:3122
最先执行的肯定是第一个fun(),它指向最后的那个function fun ()。然后又执行第二个fun(),它指向第一个var fun = function ()。然后执行第三个fun(),第二个var fun = function ()覆盖第一个,因为js没有重载的方法,所以就是这么个运行流程。
等同于代码变成了这样:
function fun (){ alert(0); } function fun (){ alert(3); } fun(); var fun = function (){ alert(1); } fun(); var fun =function (){ alert(2); } fun(); fun();
时间: 2024-11-09 14:06:46