通过尝试覆盖我在这种奇怪行为中发生的函数。我希望在搜索并阅读有关函数声明方法后找不到答案。
在脚本中,如果我声明了这个
var someFunction = function(){
alert("a");
}
someFunction();
someFunction = function(){
alert("b");
}
通过致电someFunction
,我的输出为"a"
但是如果我以这种方式声明这两个函数
function someFunction(){
alert("a");
}
someFunction();
function someFunction(){
alert("b");
}
我的输出将为"b"
这有什么区别?我理解第一个例子是为变量赋一个匿名函数。但第二个例子对我来说是完全出乎意料的。
我在所有浏览器上测试过,输出结果相同。
答案 0 :(得分:0)
不同之处在于您在第一个示例中调用匿名函数,Javascript从上到下进行评估。在匿名函数的情况下,它实际上并未执行,直到稍后调用它。