说到闭包,首先要知道什么是闭包? 闭包就是能访问到外部函数作用域中的变量函数
为什么要有闭包?
1、避免变量被污染
2、私有化
3、保存变量,常驻内存
什么时候使用闭包?
当我们需要隐藏一些不希望被别人访问的内容时,就要使用闭包
下面说说,构成闭包的条件
1、函数的嵌套
2、内部函数要引用外部函数中的变量
3、内部函数要作为返回值返回
下面就是一个简单的闭包
function fn() {
let num = 0 // 位于函数作用域,只能在函数内部访问
// 匿名函数
return () => {
num ++
console.log(num)
}
}
const newfn = fn()
console.log(newfn)
newfn() // 1
newfn() // 2
闭包的原理:
函数在作用域,在函数创建时就已经确定的(词法作用域)和调用的位置无关
闭包利用的就是词法作用域
let a = '全局变量a'
// 函数在作用域,在函数创建时就已经确定的(词法作用域)和调用的位置无关
// 闭包利用的就是词法作用域
function
为什么要有闭包?
1、避免变量被污染
2、私有化
3、保存变量,常驻内存
什么时候使用闭包?
当我们需要隐藏一些不希望被别人访问的内容时,就要使用闭包
下面说说,构成闭包的条件
1、函数的嵌套
2、内部函数要引用外部函数中的变量
3、内部函数要作为返回值返回
下面就是一个简单的闭包
function fn() {
let num = 0 // 位于函数作用域,只能在函数内部访问
// 匿名函数
return () => {
num ++
console.log(num)
}
}
const newfn = fn()
console.log(newfn)
newfn() // 1
newfn() // 2
闭包的原理:
函数在作用域,在函数创建时就已经确定的(词法作用域)和调用的位置无关
闭包利用的就是词法作用域
let a = '全局变量a'
// 函数在作用域,在函数创建时就已经确定的(词法作用域)和调用的位置无关
// 闭包利用的就是词法作用域
function
