闭包的关键是作用域,概念是:能有读取其他函数内部的函数
使用的场景有很多,最常见的是函数封装的时候,再就是在使用定时器的时候,会经常用到
jquery 闭包?
基本所有语言 都包含闭包的概念
如果要了解闭包 就要先了解变量的作用域 和生命周期 如果你了解这2个 那么闭包的概念就能瞬间懂了
很多时候你都无意中用了闭包
举个例子
function Test() { var str="Test里面的局部变量"; retrun function() { alert(str); } } var func=Test(); func(); //运行后将打印"Test里面的局部变量" 按照变量的生命周期 Test函数运行完毕 str变量就会被销毁 但是在这里它并没有 因为它被匿名函数给捕获了 延长了它的生命周期 这就是闭包
我经常是这样使用的:
比如说,我们的js代码中有一个功能,很多地方都需要使用,这个功能的行数大概有30行,假设我们有10个要用这个功能,如果我们使用一个闭包,即function xxx(){...},那我们在其它地方就可以直接使用xxx()来代替我们之前的30行代码,也就是说可以节省很多代码。
这只是我的用法,仅供参考。
这根本不是闭包