javascript执行顺序

javascript执行顺序,javascript,function-pointers,execution,Javascript,Function Pointers,Execution,我读到了 JavaScript在任何其他变量之前、之后缓存声明的函数 这样,它返回到作用域的顶部并运行变量 定义和函数按其出现的顺序调用 我不明白这个例子 //bob first initialization function bob() { alert('bob'); } //set jan to bob via reference var jan = bob; //set bob to another function function bob() { alert('n

我读到了

JavaScript在任何其他变量之前、之后缓存声明的函数 这样,它返回到作用域的顶部并运行变量 定义和函数按其出现的顺序调用

我不明白这个例子

//bob first initialization
function bob()
{
    alert('bob');
}
 
//set jan to bob via reference
var jan = bob;

//set bob to another function
function bob()
{
    alert('newbob');
}
 
jan(); //alerts 'bob'
bob(); //alerts 'newbob'
这两个
bob()
函数都在执行前声明和缓存。那么为什么
jan()
会提醒“bob”而不是“newbob”?jan初始化时,bob()已被重新声明


有什么想法吗?感谢因为
jan
指向
bob
的第一个声明(作为指针),而不是新声明的
bob
,您需要设置
jan=bob在第二次声明之后


不过不太确定。

你在用什么浏览器打电话给jan
警报
bob'
?我得到了
'newbob'
不管怎样…即使我在第二次
bob
声明之后声明了另一个引用
bob
的变量…对不起,我没有意识到您的示例来自链接。我不确定这是否正确,因为这不是我得到的结果,至少……试试看:对我来说是一样的,Ie、Firefox和Chrome(最新版本)上都有提醒“newob”