javascript里面不同function定义的区别
在Javascript中定义一个函数,有两种写法:
第一种是:function ftn(){}
另外一种是:var ftn = function(){}.
这两种写法是完全等价的。但是在解析前,前一种写法会被解析器自动提升到代码的头部。JavaScript的“编译”只是检查有没有代码错误,不会运行代码。
function ftn() { alert('old'); } var b = ftn; function ftn() { b(); alert('new'); } alert(b);//结果是重新定义的ftn内容
上面代码的源代码顺序是:
function
var
function
应用预加载后的顺序是:
function
function
var
预加载后的完整代码:
function ftn() { alert('old'); } function ftn() { b(); alert('new'); } var b = ftn; alert(b);//结果是重新定义的ftn内容
第二个测试例子:
var ftn = function() { alert('old'); } var b = ftn; var ftn = function() { b(); alert('new'); } ftn();//old,new依次弹出

浙公网安备 33010602011771号