有人可以向我解释以下三个示例中发生了什么吗?我的想法是第一个例子,bar
没有执行(它只是一个函数声明)所以当foo
执行时,输出是undefined
?对于第二个示例,bar
执行 以返回值 3。对于第三个示例,我不知道为什么它会产生 8。
// 1)
function foo() {
function bar() {
return 3;
}
}
foo(); // undefined
// 2)
function foo() {
function bar() {
return 3;
}
return bar();
}
foo(); // 3
// 3)
function foo(){
function bar(){
return 3;
}
return bar();
function bar() {
return 8;
}
}
foo(); // 8