Javascript setInterval-如何保留传入的变量

Javascript setInterval-如何保留传入的变量,javascript,setinterval,Javascript,Setinterval,我做了一些挖掘,所以无法找到确切的我要实现的目标 简单地说,我有一个函数 function(){ for(i=0;i<10;i++){ setInterval(function(){ alert(i);), 1000) } } function(){ 对于(i=0;i这应该可以做到;) (i=1;i

我做了一些挖掘,所以无法找到确切的我要实现的目标

简单地说,我有一个函数

function(){
   for(i=0;i<10;i++){
      setInterval(function(){ alert(i);), 1000)
   }
}
function(){
对于(i=0;i这应该可以做到;)

(i=1;i<11;i++)的
{
(函数(局部_i){
setInterval(函数(){console.log(local_i);},1000*local_i)
})(i) );
}
这应该可以做到;)

(i=1;i<11;i++)的
{
(函数(局部_i){
setInterval(函数(){console.log(local_i);},1000*local_i)
})(i) );
}

您必须捕获a中的变量。在您的情况下,这是

函数捕获(x){
setInterval(函数(){
控制台日志(x);
}, 1000);
}
对于(变量i=0;i<10;i++){
捕获(i);
}

函数捕获(my_obj){
var id=setInterval(函数(){
我的对象替换类([“某物”,“其他物],“某物”);
}, 1000);
返回id;
}
用于(obj中的i){
//我在dom中的对象。这家伙就是我想要保存的
my_obj=document.getElementById(i);
if(obj[i]=“某物”){
timers.push(捕获(my_obj));
}
}

您必须捕获a中的变量。在您的情况下,这是

函数捕获(x){
setInterval(函数(){
控制台日志(x);
}, 1000);
}
对于(变量i=0;i<10;i++){
捕获(i);
}

函数捕获(my_obj){
var id=setInterval(函数(){
我的对象替换类([“某物”,“其他物],“某物”);
}, 1000);
返回id;
}
用于(obj中的i){
//我在dom中的对象。这家伙就是我想要保存的
my_obj=document.getElementById(i);
if(obj[i]=“某物”){
timers.push(捕获(my_obj));
}
}

;)。可能重复感谢您对已经提出的问题的建议。我想我不明白我的实际问题是什么,所以我没有办法搜索它。;。可能重复感谢您对已经提出的问题的建议。我想我不明白我的实际问题是什么,所以没有办法r我来搜索。上面的代码有“10个设置间隔,每1秒会提醒1到10个”。我是否遗漏了什么?我不确定,如果您遗漏了什么,问题就有点模糊了。无论如何,所有设置间隔都是“触发”同时,您将获得十个
1
s、十个
2
s等。也许使用
setTimeout()更好
?虽然这可能也是预期行为。我给出的代码每1秒触发10个setInterval,但它们每次都会打印出1到10,因为它将I值保存在一个本地变量中。是否希望每秒触发一个setInterval,持续10秒?你的答案成功了。我想这是关于理解Java的基本原理的脚本,我还在学习中。谢谢。上面的代码有“10个设置间隔,每1秒会提醒1到10个”。我是否遗漏了什么?我不确定,如果您遗漏了什么,问题有点模糊。无论如何,所有设置间隔都是“触发”同时,您将获得十个
1
s、十个
2
s等。也许使用
setTimeout()更好
?虽然这可能也是预期行为。我给出的代码每1秒触发10个setInterval,但它们每次都会打印出1到10,因为它将I值保存在一个本地变量中。是否希望每秒触发一个setInterval,持续10秒?你的答案成功了。我想这是关于理解Java的基本原理的剧本,我还在学习。谢谢。谢谢你的回答。两个答案都很好。谢谢。谢谢你的回答。两个答案都很好。谢谢。
function(obj){
   //Clear any intervals
   for(i=0;i<timer.length;i++){
      clearInterval(timers[i]);
   }

   // Empty timers Array
   timers = [];

   for(i in obj){
      //My object from the dom. This guy is what I am trying to preserve
      my_obj = document.getElementById(i);
      if(obj[i] === "Something"){
         timers.push(setInterval(function(){
            my_obj.replace_class(["Something", "Otherthing"],"Something");
         }, 1000)
      }
   }
}
for(i = 1; i < 11; i++){
  (function(local_i){ 
    setInterval(function(){ console.log(local_i); }, 1000 * local_i)
  })(i);
}