闭包理解的笔记

// 闭包:Closure

// 1.什么是闭包:闭包是嵌套的内部函数

// 2.闭包如何产生的。当嵌套的内函数使用了父函数的变量或者函数时,就产生了闭包
// 3.闭包的产生条件: 1.嵌套的函数 2.嵌套函数使用了父函数的变量或者函数


```javascript
function fun1() {
    var a='aaaa'
    var b='bbb'
    console.log(a)
    function fun2(){ //执行内部函数定义时就会产生闭包(不用调用内部函数)
        console.log(a)
    }
    return fun2
}
var f = fun1()  //这里就产生了一个闭包
f()
f()  //还是一个闭包

var f2 = fun1()  //这里又产生了一个闭包,一共两个闭包

// 常见的闭包
// 1.将内部函数作为外部函数返回值返回
```javascript
function fc1(){
    var a=1
    function fc2(){
        a++
        alert(a)
    }
    return fc2
}
var b = fc1()
b()  //2
b()  //3
var c= fc1()
c()  //2

//这里可以看出闭包的第一个作用:
// 1.在外部函数的内部变量在该函数执行完后,仍然在内存中存活(延长了内部变量的生命周期)
// 2.函数内部的变量可以在函数外部操作(读写)

// 常见的闭包
// 2.将函数的作为实参,传递给另外一个函数使用
function showDelay(msg,time){
    setTimeout(function (){
        alert(msg) 
        //这里是showDelay函数的内部函数,
        //使用了外部函数的实参msg
    },time)
}

showDelay('我是作为函数实参传递给内部函数的变量','1000')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值