1-我在任何函數外聲明一個var
2-我點擊並提出將var更改爲BMW? (但我不顯示它)
3-我點擊另一個地方,我想展示我認爲它會顯示寶馬的變種,但它顯示瑪莎拉蒂。爲什麼?如果我在一個點擊函數內部改變一個var,但是我沒有使用這個var,那麼這個var真的會改變嗎?有人可以解釋一下,我只是想了解這種行爲。更改函數內部的var但不使用它
這裏查看和播放:http://jsfiddle.net/gLe5305k/
的jQuery:
var carName = "Maserati";
$("#blue").click(function() {
var carName = "BMW";
});
$("#smoke").click(function() {
$('#check').text(carName);
});
HTML:
<div id="blue"></div>
<div id="smoke"></div>
<div id="check"></div>
CSS:
#blue{
position: absolute;
top:100px; left:100px;
width:100px; height:100px;
cursor:pointer;
background-color:blue;
}
#smoke{
position: absolute;
top:100px; left:250px;
width:100px; height:100px;
cursor:pointer;
background-color:whiteSmoke;
}
這將是一個偉大的答案,如果你解釋爲什麼OP使用'他的函數內部var'不更新的全局變量'carName '。 – Mouser 2015-02-07 10:15:14
爲了使全局變量在函數內部,我不應該使用'var',這是規則嗎? – Nrc 2015-02-07 10:47:20
通過不使用'var',你不在函數的作用域中聲明變量,它會在外部作用域中查找,直到找到你的變量。當你使用'var'在函數內聲明它時,外部變量是有效隱藏的,你必須以不同的方式訪問它。 – 2015-02-07 11:25:35