html和javascript如下:
<script>
function a(k)
{
var i=0;
if(k==0)
{
function b()
{
alert(++i);
}
return b;
}
else
{
function c()
{
alert(++i);
}
return c;
}
}
var d=a(0);
var e=a(1);
</script>
<button onclick="d()">clickme</button>
<button onclick="e()">clickme2</button>
html和javascript在上面。
我先点击“clickeme”按钮,浏览器提醒“1”;然后我点击“clickme2”按钮,浏览器警报“1”。
为什么呢?
点击“clickme”按钮后,变量“i”变为1;然后,当我点击“clickme2”按钮时,浏览器应警告“2”。 为什么呢?
b()和c()的局部函数是否拥有变量“i”的副本?
答案 0 :(得分:0)
问题是你的变量是在a()函数中定义和初始化的。
代码应更改为:
<script>
var i=0;
function a(k)
{
if(k==0)
{
function b()
{
alert(++i);
}
return b;
}
else
{
function c()
{
alert(++i);
}
return c;
}
}
var d=a(0);
var e=a(1);