我读到了
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() 已经被重新声明了。
有任何想法吗?谢谢