简单来说,我理解的闭包就是
外层方法可以访问到内层方法的变量,然后内层元素就利用“闭包”这一特性去访问,改变外层变量 。
有一个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便可以呆在内存中,就变成了下面的样子了 。
没写完,打个标记回来接着写。