虽然很多JavaScript范围问题确实存在,但我无法在我的问题上找到完全匹配。这是我现在的问题代码。Javascript范围混乱
var my_var = "blank";
var MyFunc = function() {
my_var = "one";
//var my_var = "two";
}
alert(my_var);
MyFunc();
alert(my_var);
当我运行此,我提醒与“空白”,然后如预期“一”。但是,如果我取消注释该行,则看起来像这样。
var my_var = "blank";
var MyFunc = function() {
my_var = "one";
var my_var = "two";
}
alert(my_var);
MyFunc();
alert(my_var);
我提醒与“空白”然后“空白”。这不是我所期望的,我发现添加一行可以消除行为,令人困惑。任何人都可以解释这里发生了什么?我在firefox和safari中都看到了这种行为。
另一个很好的理由。 – jfriend00