在 Stoyan Stefanov 的“JavaScript 模式”一书中,有一部分是关于自定义函数的。
var scareMe = function(){
console.log("Boo!");
scareMe = function(){
console.log("Double Boo!");
}
}
scareMe();//==>Boo!
scareMe();//==>Double Boo!
它按我的预期工作。但是我修改了scareMe函数如下:
function scareMe(){
console.log("Boo!");
function scareMe(){
console.log("Double Boo!");
}
}
scareMe();//==>Boo!
scareMe();//==>Boo!
问题:
- 他们之间有什么区别?
- 在第二种情况下,为什么输出不是“Double Boo!”,而是“Boo!”