理解javascript函数式编程中的闭包(closure)
之后闭包特性被其他语言广泛吸纳。还有一个叫做 get 的函数, get 将其父作用域,也就是 generateClosure() 函数中的 count 变量增加 1,并返回 count 的值。generateClosure() 的返回值是 get 函数。上面这个例子解释了闭包是如何产生的:counter1 和 counter2 分别调用了 generateClosure() 函数,生成了两个闭包的实例,它们内部引用的 count 变量分别属于各自的运行环境。回调函数不会立即执行,而是等待相应请求处理完后由请求的函数回调。我们可以看到,只有调用 counter() 才能访问到闭包内的 count 变量,并按照规则对其增加1,除此之外决无可能用其他方式找到 count 变量。
下载地址
用户评论