为了账号安全,请及时绑定邮箱和手机立即绑定

闭包问题???

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

正在回答

1 回答

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垃圾回收机就默默走开了。。

2 回复 有任何疑惑可以回复我~
#1

蓝色是最温暖的颜色L

请问这里的参数y要怎么理解呢
2018-11-22 回复 有任何疑惑可以回复我~
#2

qq_吧啦吧啦_3 回复 蓝色是最温暖的颜色L

这里的y是形参,bar(10)传进去的10是实参。 这里alert的结果就是3+10+2 = 15
2018-12-07 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

闭包问题???

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信