更改函数内的var,但不使用它

时间:2015-02-07 10:11:18

标签: javascript jquery

1-我在任何函数之外声明var 2-我点击,我想我将变更改为宝马? (但我没有表现出来)
3-我点击到另一个地方,我想展示var我认为它会显示宝马,但它显示玛莎拉蒂。为什么?如果我在click函数中更改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;
}

2 个答案:

答案 0 :(得分:5)

不要再次声明变量:

$("#blue").click(function() {
    carName = "BMW";
});

如果再次声明该变量,它将被视为局部变量,其范围仅限于该函数。

小提琴:link

答案 1 :(得分:1)

您有两个名称相同但范围不同的变量。

var carName = "BMW";更改为carName = "BMW";

现在你只有一个变量