什麼是閉包?
所謂閉包,是指函數能夠通路函數外定義的變量。
例子一:
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();
alert(calcSallery(5000,4000));
}
結果:
12000