闭包的声明

闭包:

闭包定义和调用的作用域无关,而与定义闭包的作用域有关;这就解释了for循环中setTimeout例子中的问题,每次循环都创建了一个闭包;当调用闭包时都去声明闭包时作用域(作用链)去获取数据执行闭包;

 

let:

这是一个非常微妙的区别,拿我们的会说话的猫的例子来说,如果一个for (let...)循环执行多次并且循环保持了一个闭包,那么每个闭包将捕捉一个循环变量的不同值作为副本,而不是所有闭包都捕捉循环变量的同一个值。

posted on 2016-07-08 14:42  源人  阅读(140)  评论(0)    收藏  举报

导航