1.闭包是怎么产生的?
闭包的产生是一个函数访问了另外一个函数内部的局部作用域变量
2.闭包是什么?
闭包就是一个作用域访问了另外一个函数内部的作用域变量
//fun函数可以访问fn函数内部的num变量
function fn () {
let num = 10
function fun () {
console.log(num)
}
fun()
}
fn()
3.闭包的主要作用是什么?
第一种写法:
function fn1() {
let n = 1
function fn2() {
console.log(n)
}
// 直接将fn2函数return出去
return fn2
}
//使用一个变量接收
var fu = fn1()
第二种写法:
function fn1() {
let n = 1
//直接return fn2函数
return function fn2 () {
console.log(n)
}
}
var fu = fn1()
fu()
因此,闭包的作用是延申作用域变量的范围