Javascript 将变量传递给setInterval函数

Javascript 将变量传递给setInterval函数,javascript,jquery,function,setinterval,Javascript,Jquery,Function,Setinterval,我一次又一次地尝试这样做,但是我的变量只是在div“current”中输出未定义的结果。所以我想把一个“变化”变量从“函数一”传递到“函数二”。尝试设置一个简单的示例:) id=0; setInterval(函数一(){ id++; 名称='id'+id; },1000); setInterval(函数二){ document.getElementById(“当前”).innerHTML=name;//输出未定义 },10); 有效吗?单击运行链接。正如Sirko所说,由于“name”前面没有

我一次又一次地尝试这样做,但是我的变量只是在div“current”中输出未定义的结果。所以我想把一个“变化”变量从“函数一”传递到“函数二”。尝试设置一个简单的示例:)


id=0;
setInterval(函数一(){
id++;
名称='id'+id;
},1000);
setInterval(函数二){
document.getElementById(“当前”).innerHTML=name;//输出未定义
},10);
有效吗?单击运行链接。正如Sirko所说,由于“name”前面没有var,因此它变成了一个全局变量

id = 0;
setInterval(function one(){
id++;
name = 'id' + id;
},1000);


setInterval(function two(){

    document.getElementById("current").innerHTML=name; //outputs undefined

 },10);
有效吗?单击运行链接。正如Sirko所说,由于“name”前面没有var,因此它变成了一个全局变量

id = 0;
setInterval(function one(){
id++;
name = 'id' + id;
},1000);


setInterval(function two(){

    document.getElementById("current").innerHTML=name; //outputs undefined

 },10);

name
one()
的本地函数。将其声明为全局(如
id
)在这里工作正常您的代码在这里工作:除了第二个函数在第一个函数为
name
赋值之前运行,这意味着它正在显示
window.name
属性的值(您会注意到在JSFIDLE中实际上是“result”)@Reeno-
name
是全局的。@Reeno实际上不是。前面缺少
var
,这将它带到全局范围,这两个函数都共享。此外,为什么不在
one()
中调用方法
two()
,而不是使用第二个间隔调用当前构造?
name
one()
的局部函数。将其声明为全局(如
id
)在这里工作正常您的代码在这里工作:除了第二个函数在第一个函数为
name
赋值之前运行,这意味着它正在显示
window.name
属性的值(您会注意到在JSFIDLE中实际上是“result”)@Reeno-
name
是全局的。@Reeno实际上不是。前面缺少
var
,这将它带到全局范围,这两个函数都共享。此外,为什么不在
one()
中调用方法
two()
,而不是使用第二个间隔调用当前构造?是的,它可以工作!看到我在真实代码中“name”前面有“var!”:)@Dere_2929是的,它能工作!看到我在真实代码中“name”前面有“var!”:)@德里欧2929