JavaScript 闭包

内部变量

函数内部的变量,在函数外部是无法获取并且修改的。

function f() {
 var n = 1
 n = n + 1 // 我们打算让每执行一次,n+1
 return n
}

f() // 2
f() // 2
f() // 2

// 每次执行函数,变量都被重新设置,并没有实现我们要的效果

闭包

闭包就是在函数的内部,在构建一个子函数,去影响函数的值,从而达到修改函数内部变量的效果。

function f() {
 var n = 0
 return (function() {
   console.log(n++) // 子函数,每次修改父函数的 n + 1,并且通过父函数返回到外部
 })
}

add = f()
add() // 0
add() // 1
add() // 2
更多教程 HTML5 教程 CSS3 教程 JavaScript 教程 JQuery 教程 React.js 教程 Node.js 教程 Koa2 教程 Python 教程 Linux 教程