一、setTimeout()相关知识闭包
setTimeout有两个参数,第一个参数是回调函数,第二个参数是毫秒数,表示要执行回调函数所要延迟的时间,可是咱们还须要知道的是,setTimeout会返回一个id,即这个定时器的Id。在上面的代码中其实已经建立了5个定时器,可是默认只返回一个Id。函数
原理:setTimeout()函数要等执行完函数调用栈中的代码,而后当即调用定时器。咱们的定时器被放在一个队列数据中,等待上下文的可执行代码运行完毕后,才开始执行定时器。因此在定时器执行的时候,变量值已经变成了最后的i值 全部输出为 第5次性能
二、引入闭包队列
为了实现打印出来不一样的i,就须要引入闭包。闭包要应用正确,滥用会致使性能问题。回调函数