0
通过尝试重写我发生在这个奇怪的行为的函数。我希望能够在搜索并阅读了函数声明方法而没有成功之后找到答案。Javascript函数声明 - 不同的行为?
在脚本中,如果我声明这
var someFunction = function(){
alert("a");
}
someFunction();
someFunction = function(){
alert("b");
}
通过调用someFunction
我将有"a"
输出,但如果我这样
function someFunction(){
alert("a");
}
someFunction();
function someFunction(){
alert("b");
}
声明的两个函数我的输出将是"b"
这里有什么区别?我明白第一个例子是赋予变量一个匿名函数。但第二个例子对我来说是完全意想不到的。
我在所有浏览器上测试过,输出结果是一样的。
我明白第一个例子,但为什么第二个是这样的? – Jonathan
尝试给http://stackoverflow.com/a/336868/3604087阅读 – Ian
@Jonathan因为你在全局范围内声明你的函数。你可以在你的.js文件的末尾编写你的函数,但仍然可以在第一行调用它。在“someFunction”的第二次声明之后,您将覆盖第一个。 – swdev95