闭包

本文通过一个具体的示例详细解释了闭包的概念及其实现原理,即外层函数如何访问并修改内部函数的变量。

简单来说,我理解的闭包就是 

   外层方法可以访问到内层方法的变量,然后内层元素就利用“闭包”这一特性去访问,改变外层变量 。

 

有一个fnncatTest方法,里面嵌套一个b()方法 ,

 b()在fnncatTest()里,有权限拿到fnncatTest中的i变量 。

 执行++i, 在fnncatTest函数中的i值变为1;

 

 接下来我想要从外部拿到循环增加的i值 ,于是我写成了这样 :

拜托,当然不可以了,i可是fnncatTest的局部变量 ,怎么可能拿到呢,

于是我想,如果把i值给到一个函数上,我通过一个函数去访问i,

这么写了:

c()没有。对啊 ,因为fnncatTest没有返回值呀,于是我机智的在fnncatTest()加上了

return b;

这样,我的fnncatTest()有了返回值,把b()返回到了fnncatTest()中,

fnncatTest便可以去访问b()中的i了

i便可以呆在内存中,就变成了下面的样子了 。

  

 

没写完,打个标记回来接着写。

转载于:https://www.cnblogs.com/fnncat/p/6559636.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值