我正在閱讀Mozilla開發人員網站上有關閉包的解釋,我正在努力一點。請從Mozilla網站上查看以下代碼。我有點理解它是如何工作的,但我認爲我的意見下面的代碼也應該工作。如果點擊18和20,爲什麼它不起作用?JavaScript - Closures
/* mozilla dev code */
function makeSizer(size) {
return function() {
document.body.style.fontSize = size + 'px';
};
}
var size12 = makeSizer(12);
var size14 = makeSizer(14);
var size16 = makeSizer(16);
document.getElementById('size-12').onclick = size12;
document.getElementById('size-14').onclick = size14;
document.getElementById('size-16').onclick = size16;
/* end of mozilla dev example */
/* my code starts */
/* see - no inner function below */
function makeS(size) {
document.body.style.fontSize = size + 'px'
}
/* Let's see if that works */
var size18 = makeS(18);
document.getElementById('size-18').onclick = size18;
/* What about that? */
document.getElementById('size-20').onclick = makeS(20);
爲什麼
CodePen: http://codepen.io/wasteland/pen/qqoooW
[JavaScript關閉如何工作?]的可能重複(http://stackoverflow.com/questions/111102/how-do-javascript-closures-work) – s3raph86