代码改变世界

JS 函数小测试

2011-10-14 11:25  呦菜  阅读(322)  评论(0编辑  收藏  举报

再看一遍文章的时候看到了关于匿名函数赋值给变量的例子,做了如下测试:

code1:

foo();
function foo()
{
    alert("ss");
}
foo();

测试结果是弹出了两次“ss”,说明在function foo()之前执行的foo()也是有执行的,这是因为

function foo() { alert("ss"); }
这个方法会在执行前被解析,因此它存在于当前上下文的任意一个地方, 即使在函数定义体的上面被调用也是对的。

那对于匿名函数赋值给变量的方法下是什么结果呢?

code2:

var doo = function() {alert("dd");}
doo();
foo();
var foo = function() {alert("ff")};


测试结果是只弹出了“dd”,并且浏览器提示错误