闭包
- 如何产生闭包?
- 当一个嵌套的内部(子)函数引用了嵌套的外部(父)函数的变量(函数)时, 就产生了闭包
- 注意点
- 函数嵌套
- 内部函数引用了外部函数的数据(变量/函数)
- 即使外部有其他变量,只要不被引用闭包内就不会有那个值,如果内部没有引用值,也就不会有闭包。
-
- 闭包存在于嵌套的内部函数中
常见的闭包
-
将函数作为另一个函数的返回值
function fn1() { var a = 2//在这一步时闭包和a都为undefined,因为var a;只是声明 //之后a = 2,后闭包和a同时都为2了 function fn2() { a++ console.log(a) } return fn2 } var f = fn1