J'ai pris la fonction suivante de this site et l'ai branchée dans mon code pour afficher une chaîne de temps conviviale basée sur un argument millisecondes.Pourquoi cette fonction JavaScript renvoie-t-elle: "0: 0fonction toString() {[code natif]}"?
Pourquoi cette fonction ne fonctionne-t-elle pas?
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;
}
Si je passe une valeur de milliseconde de ma fonction d'appel que je reçois ceci:
0:0function toString() { [native code] }:0function toString() { [native code] }
Plus précisément, le code '" 0 "+ numMins.toString' ajoute une * chaîne * à une * fonction *. Javascript le fait en convertissant la fonction en une chaîne, ce qu'elle fait en sortant la source de la fonction (ou, le cryptique '[code natif]' pour les fonctions intégrées) – Gareth