下面代码中的输出是如何变成1的,谁能解释一下吗?
var foo = 1;
function bar() {
foo = 10;
return;
function foo() {}
}
bar();
alert(foo);
最佳答案
您定义了一个具有相同名称 foo
的函数,因此在方法 foo
中(充当局部变量)引用函数。您可以将 console.log(foo)
视为 bar()
方法内的函数。
var foo = 1;
function bar() {
console.log(foo);
foo = 10;
return;
function foo() {}
}
var b=bar();
alert(foo);
您可以做的是在全局上下文中获取变量(window['foo']
)并更新或重命名变量或函数。
var foo = 1;
function bar() {
window['foo'] = 10;
return;
function foo() {}
}
var b=bar();
alert(foo);
关于javascript - 下面代码中的输出是如何变成1的,谁能解释一下吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38763189/