在JavaScript中,根据词法作用域的规则,内部函数总是可以访问其外部环境中声明的变量,当通过调用一个外部函数访回一个内部函数后,即使该外部函数已经执行结束,但是内部函数引用外部函数的变量依然保存在内存中,我们就把这些变量的集合称为闭包。
function foo() {
var myName = " 111111 "
let test1 = 1
const test2 = 2
var innerBar = {
getName:function(){
console.log(test1)
return myName
},
setName:function(newName){
myName = newName
}
}
return innerBar
}
var bar = foo()
bar.setName(“3333333”)
bar.getName()
console.log(bar.getName())