javascript – Fehler gemeldet, wenn setTimeout setInterval ersetzt, um den Countdown zu implementieren
ringa_lee
2017-05-19 10:38:45
Bei der Verwendung von vue2 zum Erstellen eines Projekts bin ich kürzlich auf die Notwendigkeit eines aktiven Countdowns gestoßen. Bei der Verwendung von setTimeout zur Simulation des Effekts von setInterval ist ein Fehler aufgetreten (letzteres kann das Problem natürlich leicht lösen)
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)
Das Ergebnis ist der folgende Fehler:
Es scheint, dass das Argumentobjekt im strikten Modus von es6 nicht gefunden werden kann...
使用箭头函数不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用Rest参数代替。