JavaScript中的闭包初探
什么是闭包?
所谓闭包,是指函数能够访问函数外定义的变量。
例子一:
var sMsg = "This is out of the function!";
function printInfo() {
alert(sMsg);
}
window.onload = function() {
printInfo();
}
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));
}
function calcSallery(baseSallery, bonus) {
function addSallery() {
return baseSallery + bonus + extraBonus;
}
return addSallery();
}
window.onload = function() {
alert(calcSallery(5000,4000));
}
结果:
12000
技术改变世界