日期:2014-05-16 浏览次数:20464 次
今天遇到一个有点小郁闷的问题。
看代码:
<html>
<head>
<script>
function b(id, id2)
{
   alert(id + "---->" + id2);
}
function a()
{
   var c = '123';
   var    s   =   "2005-12-15";
   window.setInterval("b(" + c + "," + s + ")", 100);
}
a();
</script>
</head>
<html>
?
弹出:
?

?
??
?我想应该不对啊,所以就做了一下的修改!
<html>
<head>
<script>
function b(id, id2)
{
   alert(id + "---->" + id2);
}
function a()
{
   var c = '123';
   var s =  "2005-12-15";
   window.setInterval(b(c, s), 100);
}
a();
</script>
</head>
<html>
?
?嘿嘿 可以了!但不明白为什么。
?

?
最后我想是不是
按照我那个写法,出来就是1978
在内部被eval("2005-12-15") ,掉了
“-” 这个符号被当作减号了 
果然是这个问题。那就是闭包的问题了
所以我又修改了一下
<html>
<head>
<script>
ffunction b(id, id2)
{
   alert(id + "-->" + id2);
}
function a()
{
   var c = '123';
   var s = '2005-12-15';
   window.setInterval("b('"+c+"','"+s+"')", 100);
}
a();
</script>
</head>
<html>
?
?嘿嘿 弹出结果为:

呵呵 解决。
?
不过?对于 JavaScript里面的闭包问题 我还是不是很明白 所以有待以后再去深入了。
?
?