闭包的用处
延迟调用
setTimeout 函数允许在指定时间之后在全局对象(window 对象)里执行一个无参数函数。利用闭包的特性,我们就可以给这个函数传递参数。
var parse = function(){ var list = ['t', 'n', '\' /* other */]; return function(str /* 要解析的目标字符串 */) { //do parse };}(); parse('hello');这样,不管调用多少次 parse 函数,特殊字符列表都不会重新初始化了,而且外部任何地方都无法访问这个列表。
通过闭包可以做什么,以上只是举两个比较常见的例子,有一篇文章说闭包什么都可以做。有的时候不用闭包可能也可以实现相应的功能,但闭包使 JavaScript 变得更加灵活,可以让你写出更加优雅的代码。要详细解答这个问题要通过大量的实践和总结了,我们只要对它的原理理解了,平时开发的时候多思考,就知道该不该用闭包了。
-EOF-