对象中的javascript间隔

对象中的javascript间隔,javascript,object,intervals,Javascript,Object,Intervals,我已经写了一个片段,它应该开始计算从1到1000或预定义的数字 由于多次需要脚本,我认为将其作为对象编写并多次使用是一个好主意。但我有一个错误: 未捕获引用错误:未定义根 (匿名函数) 我做错了什么 var time = function() { var root = this; var i=0; root.max = 1000; root.elm = false; root.runTime = funct

我已经写了一个片段,它应该开始计算从1到1000或预定义的数字

由于多次需要脚本,我认为将其作为对象编写并多次使用是一个好主意。但我有一个错误:

未捕获引用错误:未定义根 (匿名函数)

我做错了什么

     var time = function() {
        var root = this;
        var i=0;
        root.max = 1000;
        root.elm = false;
        root.runTime = function() {
            if(root.elm != false) {
                if (i < root.max) {
                    i++;
                    root.elm.text(i);
                } else {
                    clearInterval(root.interval);
                }
            }
            this.interval = setInterval('root.runtTime()', 5);
        };
    };

    if($(document).ready(function() {
        var countUp= new time();
        countUp.max = 1526;
        countUp.elm = $("#elm");
        countUp.runTime();
    });
var time=function(){
var root=这个;
var i=0;
root.max=1000;
root.elm=false;
root.runTime=函数(){
if(root.elm!=false){
如果(i
这是因为以下几行:

this.interval = setInterval('root.runtTime()', 5);
因为它是一根绳子

更改为以下内容以确保相同的范围:

this.interval = setInterval(root.runtTime, 5);
还有一个输入错误(
runtTime
应该是
runTime
),因此请更改为以下内容:

this.interval = setInterval(root.runTime, 5);
最后,您使用的是
setInterval
,它将每隔5ms重复调用
root.runTime
。如果希望递归调用,请更改为
setTimeout

this.interval = setTimeout(root.runTime, 5);
或者在
运行时
函数之外设置间隔:

   root.runTime = function() {
        if(root.elm != false) {
            if (i < root.max) {
                i++;
                root.elm.text(i);
            } else {
                clearInterval(root.interval);
            }
        }
    };
    this.interval = setInterval(root.runTime, 5); 

哪一行出现错误?第二行?顺便说一句,设置一个间隔,以便调用
root.runtTime
n^2他也不需要文档中的if。就绪…这将抛出错误,并且他没有正确关闭括号。。
$(document).ready(function() {
    var countUp= new time();
    countUp.max = 1526;
    countUp.elm = $("#elm");
    countUp.runTime();
});