注意:是在setTimeout中递归调用setTimeout。
使用arguments.callee来调用自身是不行的。因为包了一层setTimeout
function show(n) {
var arr = [];
return (function () {
arr.unshift(n);
n--;
if (n != 0) {
arguments.callee();
}
return arr;
})()
}
console.log(show(5))
let count = 0;
var fun = null;
var flag ;
function counter(delay,times){
// var count= 0;
count += 1;
if(count <= times){
flag = true;
}else{
flag = false;
}
if(flag){
fun = setTimeout(
function(){
console.log(count)
counter(delay,times)
}
,delay)
}else{
clearTimeout(fun);
}
}
网友评论