雖然很多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