javascript如何使里程表在装载时开始计数?

javascript如何使里程表在装载时开始计数?,javascript,Javascript,如何使里程表在装载时开始计数?(我已经试过了,但是没有用,应该启动它的snipet位于javascript的底部)。我是javascript初学者,请帮助:) 这是加文·布洛克的里程表 // 开始计算(); 它不起作用,因为setTimeout希望您传递函数句柄(传递字符串) 尝试设置超时(更新,0)来自: 传递给setTimeout的字符串在全局上下文中求值,因此当字符串作为代码求值时,调用setTimeout()的上下文中的本地符号将不可用 另外, 不建议使用此语法,原因与使用eval()存

如何使里程表在装载时开始计数?(我已经试过了,但是没有用,应该启动它的snipet位于javascript的底部)。我是javascript初学者,请帮助:)

这是加文·布洛克的里程表

//
开始计算();

它不起作用,因为setTimeout希望您传递函数句柄(传递字符串)

尝试设置超时(更新,0)

来自:

传递给setTimeout的字符串在全局上下文中求值,因此当字符串作为代码求值时,调用setTimeout()的上下文中的本地符号将不可用

另外,

不建议使用此语法,原因与使用eval()存在安全风险相同

您的代码不工作,因为当以字符串形式传递代码时,
setTimeout
无法看到您的
update
方法。正如@dolek建议的那样,您可以通过直接传递
update
来解决这个问题并提高代码的质量

    //<![CDATA[
        var n = 0;
        var myOdometer;
        function startcounting () {
            var div = document.getElementById("odometerDiv");
            myOdometer = new Odometer(div, {value: n, digits: 6, tenths: true});
            update();
        }

        function update () {
            n=n+0.0025
            myOdometer.set(n);
            setTimeout("update()", 0);
        }
    //]]>

startcounting();