可以't访问JavaScript函数范围中的变量

Can't access variable in JavaScript function scope

本文关键字:范围 函数 变量 JavaScript 访问 可以      更新时间:2023-09-26

我遇到这样的情况:

console.log(someVar) // <- works, the variable is defined
var somefunction = function () {
    console.log(someVar); 
}
somefunction(); // <- someVar is undefined on the console

我无法演示一个简单的模型来显示这一点,因为我甚至不知道这是怎么可能的。如果someVar是在定义someFunction的上下文中定义的,那么someVar不也在someFunction的范围内吗?

在某些情况下,它应该这样工作吗?如果是这样的话,我可能是不小心撞上了。

名为的变量在函数中以一种不明显的方式被进一步隐藏。

JS

var somefunction = function () {
    var somevar = "foo";
    return somevar;
}
alert(somefunction());

Fiddle