闭包是什么,闭包有啥用,闭包怎么用。
一、闭包概念
能够读取其他函数内部变量的函数
二、闭包优劣
优点:
- 可以读取函数内部的变量
- 让变量的值始终保持在内存中
劣势:
- 内存消耗大
- 容易造成内存泄露
三、闭包的使用
1.获取函数内部的变量
function f1() {
var s = '123'
var f2 = function () {
console.log(s)
}
f2()
}
2.通过回调函数向外界暴露变量
function b(callback) {
let value = 3;
function a() {
console.log('a', value)
callback(value)
}
a()
}
// 通过回调函数拿到闭包内的值
function callback(val) {
console.log('callback', val)
return val
}
b(callback)