如何在没有参数的情况下使用已知的var?

时间:2013-12-06 06:18:26

标签: javascript

请帮帮我。在这段代码中,我得到的是5而不是10 ......这是我的代码:

<html>
<head>
<script type="text/javascript">
b=function(){
alert(a);
}
</script>
</head>
<body>
<button id="b" onclick="c()">ok</button>
<script type="text/javascript">
var a=5;
c=function(){
var a = 10;
b();
}
</script>
</body>
</html>

example

5 个答案:

答案 0 :(得分:1)

显然你会得到5,因为'a'在函数c()内部的两个地方定义,也适用于全局作用域。

由于函数b没有任何名为a的局部变量,因此它指的是值为5的全局变量;

小提琴: http://jsfiddle.net/T8grU/

var a=5;
b=function(){
alert(a);
}


c=function(){
 a = 10;
b();
}

答案 1 :(得分:0)

当您使用关键字“var”时,您将其声明为局部变量。所以,你不是在改变全局“a”变量,而是在本地为你的“c”函数定义一个新变量。

答案 2 :(得分:0)

当你说var时,你基本上重置了变量。删除c函数中的var。它被定义为函数的局部变量!

c=function(){
    a = 10;
    b();
}

答案 3 :(得分:0)

<html>
<head>
<script type="text/javascript">
b=function(){
alert(a);
}
</script>
</head>
<body>
<button id="b" onclick="c()">ok</button>
<script type="text/javascript">
var a=5;
c=function(){
a = 10;
b();
}
</script>
</body>
</html>

答案 4 :(得分:0)

只需从第二次声明中删除var关键字,就像这样

c=function(){
a = 10;
b();
} 

查看codepen.io

的结果