我从 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] }
最佳答案
您在调用“toString”时忘记了 ()
。
编辑 — 抱歉不得不离开一会儿。正如@Gareth 评论的那样,对“toString”的引用在语法上是有效的,因为它们只是对函数的引用。因此,解析器 对您的代码没有任何问题。当您将这些引用隐式转换为字符串时出了问题。
如果你只是在每次调用中添加 ()
,它应该会工作得更好。或者,正如您链接到的那个页面进一步指出了一些帖子,您真的根本不需要 .toString()
。
关于javascript - 为什么这个 JavaScript 函数返回 : "0:0function toString() { [native code] }"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4106656/