2
的,我读了订购JavaScript执行
的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' alerts''bob''?无论如何,我都会得到'newbob''即使我在第二个bob声明之后声明另一个引用'bob'的变量... – Ian
对不起,您没有意识到您的示例来自链接。我不确定它是否正确,因为那不是我得到的结果,至少...尝试它:http://jsfiddle.net/D8R9E/ – Ian
这对我来说也是一样,都在IE,Firefox和Firefox上警惕“newbob” Chrome (最新版本) – C5H8NNaO4