为什么这个JavaScript函数会返回:“0:0function toString(){[native code]}”?

时间:2010-11-05 14:12:08

标签: javascript time string-formatting

我从this site获取了以下函数并将其插入到我的代码中,以显示基于毫秒参数的用户友好时间字符串。

为什么这个功能不起作用?

    function getTimeFromMillis(millis)
    {

        milliSecs = millis;

        msSecs = (1000)
        msMins = (msSecs * 60)
        msHours = (msMins * 60)
        numHours = Math.floor(milliSecs/msHours)
        numMins = Math.floor((milliSecs - (numHours * msHours)) / msMins)
        numSecs = Math.floor((milliSecs - (numHours * msHours) - (numMins * msMins))/ msSecs)


        if (numSecs < 10){
          numSecs = "0" + numSecs.toString
        }
        if (numMins < 10){
          numMins = "0" + numMins.toString
        }

        resultString = numHours + ":" + numMins + ":" + numSecs     
        return resultString;

    }

如果我从调用函数传递一个毫秒值,我得到这个:

0:0function toString() { [native code] }:0function toString() { [native code] }

1 个答案:

答案 0 :(得分:7)

您忘记了对“toString”的调用中的()

编辑 - 抱歉不得不离开一秒钟。正如@Gareth评论的那样,对“toString”的引用在语法上是有效的,因为它们只是对函数的引用。因此,解析器对您的代码没有任何问题。当你隐式地将这些引用转换为字符串时,出了什么问题。

如果您只是为每次通话添加(),它应该可以更好地运作。或者,正如您链接到的那个页面指出了一些更低的帖子,您根本不需要.toString()