闭包问题???

来源:7-1 [JavaScript]理解闭包

T松子

2018-09-19 15:52

还是没看懂。。。。。。有没有简单一些的理解。闭包是函数?

写回答 关注

1回答

  • 慕沐0441247
    2018-09-24 10:56:10
    已采纳
    function foo(x) {    
        var tmp = 3;    
        return function (y) {        
            alert(tmp + y + x);    
        }
    }
    var bar = foo(2);    //bar现在就是闭包
    bar(10);

    可以把闭包理解为函数,是一种‘特殊’点的函数,普通的函数,咱们在函数调用后,函数里面的变量就被js当做垃圾回收,但是闭包就厉害了,在函数调用后,本例是foo(2),仍可以访问函数内部的变量,本例中是foo内部的变量tmp和参数x,由于闭包存在,tmp和x会对js垃圾回收机说:"我是bar函数大哥的小弟,你敢清理我么。" js垃圾回收机就默默走开了。。

    qq_吧啦吧... 回复蓝色是最温暖...

    这里的y是形参,bar(10)传进去的10是实参。 这里alert的结果就是3+10+2 = 15

    2018-12-07 15:07:48

    共 2 条回复 >

JavaScript深入浅出

由浅入深学习JS语言特性,且解析JS常见误区,从入门到掌握

281100 学习 · 1020 问题

查看课程

相似问题