闭包的权威解释:
闭包是指可以包含自由(未绑定到特定对象)变量的代码块;这些变量不是在这个代码块内或者任何全局上下文中定义的,而是在定义代码块的环境中定义(局部变量)。
案例代码:
JavaScript:
function a()
{
var i=0;
function b()
{
alert(++i);
}
return b;
}
var c=a();
c();
python:
>>> def myFun ():
def childFun (number):
number = number * 2
return number
return childFun
>>> fun = myFun()
>>> fun(2)
4
以上为案例代码,不知道读者看出了规律没?所谓的闭包就是利用了封闭的概念,一个包使用的时候,我只关心包里面有什么,不关心它怎么实现的,只需要知道我能从包中获得一个我需要的函数。就像一个函数集合一样,这样子,在修改的时候只需要修改那个包就可以了。