一、基础概念
inner
函数就是一个闭包,它可以访问outer
函数中的num
变量,即使outer
函数已经执行完毕。for
循环、while
循环和do - while
循环。for
循环:for
循环:for
循环会从i = 0
开始,每次循环i
加1,直到i < 5
不成立为止,每次循环都会执行console.log(i)
语句。二、在循环中的闭包相关问题
var
声明的变量具有函数作用域,在循环结束时,i
的值变为5,而闭包中的函数引用的都是同一个i
变量,所以当调用这些闭包函数时,输出的都是5。let
关键字代替var
。因为let
具有块级作用域,每次循环都会创建一个新的i
变量。let
关键字代替var
。因为let
具有块级作用域,每次循环都会创建一个新的i
变量。三、闭包的优势
四、闭包的类型(从不同角度理解)
五、应用场景
setTimeout
、fetch
等)的回调函数中经常使用闭包。例如:setTimeout
、fetch
等)的回调函数中经常使用闭包。例如:setTimeout
回调函数就是一个闭包,它可以访问fetchData
函数中的url
和localData
变量。没有搜到相关的文章