您的位置:首页 > Web前端 > JavaScript

(Javascript) 猴子也明白 之 闭包超级入门 1 问题

2012-06-12 01:09 302 查看

问题

问题:请写一个函数 f () ,随着调用次数,输出1,2,3,…

f(); // 1
f(); // 2
f(); // 3

如何解决这一问题?

一般的函数就很难做到。但用了闭包,一切皆有可能!

闭包是神马?

看完各种百科之后仍然一头雾水的童靴不在少数?

 

我也是一直不解,记得第一回看到如下描述时,

闭包Closure)是词法闭包Lexical Closure)的简称,是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。

罢了,完全不懂(内牛满面)。

 

随着岁月流逝。。。。

 

直到最近学习Javascript之后,突然能理解了--

与其说是理解,不如说是“也能写闭包”了。

“也不知道怎么地,就学会了骑自行车了”,就是这种年少时的心情。

 

以下,是我与学习闭包的“战斗”中学到的经验:

比起理解什么是闭包,写一个闭包更简单。

写一个闭包,只要做到以下3步。

 

写闭包的3步

函数中的函数
匿名函数
函数返回函数
好好理解这3点,就可以写出闭包,进而理解闭包了。
通过写一个闭包来理解闭包。

比起理解什么是闭包,写一个闭包更简单。

以上是关键点。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: