Recently, when using vue2 to build a project, I encountered the need for an active countdown. When using setTimeout to simulate the effect of setInterval, something went wrong (of course, using the latter can easily solve the problem)
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)
The result is the following error:
![](https://pnpimg.jiaoben.net/upload/image/000/000/000/7a80b198c062ad96e8913c877998d62f-0.jpg)
It seems that the arguments object cannot be found in the strict mode of es6...
使用箭头函数不可以使用arguments对象,该对象在函数体内不存在。如果要用,可以用Rest参数代替。