闭包
在前面,我们说到让函数作为返回值的时候,写了这么一个例子。
1 |
|
闭包是函数运行时候的一种封闭环境,每一个函数都有。讲闭包首先要讲到作用域,比如我们写一个函数,函数内部的变量是没法被函数外部捕获到的,那么如果说,我们在A函数里边定义一个计数器变量,在该函数外部调用,可能就会出现意想不到的错误。但是,很多时候,我们又有这样的需求,那么怎么样,突破闭包呢?
1 | function h() { |
在这个例子里,我们h函数里面,声明了一个变量,该变量是不能被外部访问的,但是,我们 return 的函数,却可以访问外层作用域的变量值,那么如果我们把子函数当作返回值,返给调用的函数,不久突破了闭包吗?
闭包计数器
1 | var cnt = (function(){ |
April 24, 2018