闭包体现了JavaScript的一个特性,函数体可以访问定义该函数的作用域的变量,但是定义该函数的作用域不能访问函数体里面的变量,
也就是说函数可以访问外面的变量,但是外面不能访问函数里面的变量。
function f() {
let age = 24
return function increase_age() {
age++
return age
}
}
var f1 = f()
var f2 = f()
console.log(f1()) // 25
console.log(f1()) // 26
console.log(f1()) // 27
console.log(f2()) // 25
每次调用f都返回一个函数对象,每个这样的函数对象维护独立的闭包变量实例,对这些闭包变量的操作是互补干扰的。
网友评论