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依次弹出
posted @ 2015-08-03 10:29  TodayCC  阅读(87)  评论(0)    收藏  举报