在Javascript方法中添加setInterval

在Javascript方法中添加setInterval,javascript,jquery,Javascript,Jquery,我有这个代码,我可以从数字0到9: var countup = { i: 0, startCount: function () { for(i = 0; i < 10; i++){ console.log(i); } } } countup.startCount(); var countup={ i:0, startCount:函数(){ 对于(i=0;i

我有这个代码,我可以从数字0到9:

var countup = {
    i: 0,
    startCount: function () {
        for(i = 0; i < 10; i++){
            console.log(i);
        }
    }
}

countup.startCount();
var countup={
i:0,
startCount:函数(){
对于(i=0;i<10;i++){
控制台日志(i);
}
}
}
countup.startCount();
现在我需要能够让它以1秒的间隔输出数字,我已经尝试了下面的代码,它只是给了我一个未定义的输出:

var countup = {
    i: 0,
    startCount: function () {
        setInterval(function() {
            for(i = 0; i < 10; i++){
                console.log(i);
            }
        }, 1000)
    }
}
countup.startCount();
var countup={
i:0,
startCount:函数(){
setInterval(函数(){
对于(i=0;i<10;i++){
控制台日志(i);
}
}, 1000)
}
}
countup.startCount();
有人知道我如何编辑上面的代码,以1秒的间隔给出所需的数字0-9的输出吗

谢谢

有关更好的答案,请参见第二和第三段

您可以这样做,当计数达到10时,使用
setInterval
clearInterval
。此外,要访问countup对象中的变量
i
,可以使用
this.i

const countup={
i:0,
startCount:function(){
常量计时器=设置间隔(()=>{
console.log(this.i);
如果(++this.i==10){
清除间隔(计时器);
}
}, 1000);
}
}

countup.startCount()
使用
声明
i
并使用
设置超时
,因为您只需调用console.log计数器十次,而不是永远

var countup={
startCount:函数(){
for(设i=0;i<10;i++){
setTimeout(函数(){
控制台日志(i);
},i*1000)
}
}
}

countup.startCount()我不认为这是完全重复的(是的,它们也有冲突的
I
变量,但问题是关于setInterval的问题)你不应该在静态对象中使用“this”上下文。你完全正确,我在我的回答中添加了你的警告谢谢它们都能工作非常感谢你的工作!