1.用setTimeout实现SetInterval
function mysettimeout(delay,fn,...args){let time=null;function tick(){time = setTimeout(()=>{fn(...args);tick();},delay)}fn(...args);tick();return ()=>clearTimeout(time);
}
当你需要停止这个循环定时器时
const stop = mysettimeout(1000, console.log, 'Hello World');
// 当你想停止循环时,调用返回的函数
stop();
2.手写一个compose函数,返回一个函数,能够对传入的不定量个函数进行链式调用
详见
function compose(...args){if(args.length){if(args.length===1){return ()=>args[0];}else return args.reduce((a,b)=>(...arg)=>a(b(...arg)))}else return (arg)=>arg;
}