javascript闭包

JavaScript闭包

我们知道,变量分为两种,全局变量和局部变量

  • 函数内部可以访问全局变量和局部变量。
  • 函数外部只能访问全局变量,不能访问局部变量。
  • 当函数执行完毕,本作用域内的局部变量会销毁。

函数内的变量无法被外部访问

请看下面代码

function fn1() {
	    let a = 10;
}
fn1();
console.log(a)
//打印报错
Uncaught ReferenceError: a is not defined

上方代码中,由于变量 a 是函数内的局部变量,所以外部无法访问。

但是,在有些场景下,我们就是想要在函数外部访问函数内的局部变量,那要怎么办呢?这就需要引入闭包的概念。

闭包理解

让外部可以访问到函数内部的局部变量

function f1() {
    var n = 0;
    // 此时f2函数就是闭包
    function f2() {
        return n
    }
    return f2()
}
let n1 = f1();
console.log(n1)//0

解释:f1是f2的父级,所以f2可以访问f1中的局部变量,然后通过f2,将变量return出来,这样外部就可以访问到f1函数内的局部变量了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值