什么是闭包?
所谓闭包,是指函数能够访问函数外定义的变量。
例子一:
var
sMsg
=
"
This is out of the function!
"
;

function
printInfo()
{
alert(sMsg);
}


window.onload
=
function
()
{
printInfo();
}
上面的例子中,pringInfo函数访问了一个函数外的全局变量。
下面的例子更加复杂点,内部函数不但可以访问全局变量,也可以访问外部函数的参数。
例子二:
var
extraBonus
=
3000
;

function
calcSallery(baseSallery, bonus)
{
function addSallery() {
return baseSallery + bonus + extraBonus;
}
return addSallery();
}


window.onload
=
function
()
{
alert(calcSallery(5000,4000));
}
结果:
12000
