Récemment, lors de l'utilisation de vue2 pour créer un projet, j'ai rencontré la nécessité d'un compte à rebours actif lors de l'utilisation de setTimeout pour simuler l'effet de setInterval, quelque chose s'est mal passé (bien sûr, l'utilisation de ce dernier peut facilement résoudre le problème)
let myTimer = setTimeout( () => { if (diffTimer > 0) { hours = Math.floor(diffTimer/3600); minutes = Math.floor((diffTimer/60)%60); seconds = Math.floor(diffTimer%60); this.hours = hours > 9 ? hours : '0' + hours; this.minutes = minutes > 9 ? minutes : '0' + minutes; this.seconds = seconds > 9 ? seconds : '0' + seconds; } else { clearTimeout(myTimer); } diffTimer--; setTimeout(arguments.callee,1000); },1000)
Le résultat est l'erreur suivante :
![](https://pnpimg.jiaoben.net/upload/image/000/000/000/7a80b198c062ad96e8913c877998d62f-0.jpg)
Il semble que l'objet arguments soit introuvable dans le mode strict d'es6...
L'objet arguments ne peut pas être utilisé lors de l'utilisation de fonctions fléchées, car l'objet n'existe pas dans le corps de la fonction. Si vous souhaitez l'utiliser, vous pouvez utiliser les paramètres Rest à la place.