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

How to use already known var without argument?

本文关键字:var 情况下 参数      更新时间:2024-03-25

请帮帮我。在这个代码中,我得到了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>

示例

很明显,您将得到5,因为"a"在函数c()内部的两个位置定义,也用于全局范围。

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

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

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

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

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

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

c=function(){
    a = 10;
    b();
}
<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>

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

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

请参阅codepen.io 上的结果