问题引出
方才阅读es6的时候遇到一个问题:
问题解决
这就想了,如果没有let
关键字,我们如何处理这个问题呢?
此时就涉及到一个概念,闭包 clojure
。
不要被这个复杂的名词欺骗了,就是函数套函数,函数返回函数而已。解决这个问题关键在于
块级作用域和函数作用域的理解;在Javascript中,并不支持块级作用域,它只支持函数作用域,
而且在一个函数中的任何位置定义的变量在该函数中的任何地方都是可见的。
因此,我们在Js这个特性的基础上,使用闭包,然后就可以解决这个问题了:
为什么要解决这个问题?因为有时候在for循环中使用回调可能与参数i
有所联系,可能会遭遇到
问题;
当然,如果使用es6这种问题就不会发生了。es6大法好。