闭包就是能够获取其他函数内部变量的函数,所以闭包可以定义为闭包是将函数内部和函数外部连接起来的桥梁。
function f(){
var a=10;
return a;
}
var rs=f()
console.log(rs)
由于不是闭包的原因f函数返回的是一个10。
如果使用闭包的格式
function f(){
var a=10;
//设置一个函数接收量
return function(item){
a+=item
return a;
}
}
var rs=f()
console.log(rs(10))//20
console.log(rs(10))//30
可以得出闭包可以通过某种方式获取外部函数的变量,然后暴露在函数外部,并且在未来的某个节点还可以继续操作这个变量。
优点:可以防止污染我们这个全局作用域;
缺点:使用不当可能会导致内存泄漏