0
我正在閱讀javascript關閉的例子。有一件事我不明白。Javascript關閉vs常規函數
這裏是爲例:
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;
以下是完整的爲例:Fidle Exemple
我明白了什麼,是當你點擊的元素大小-12前,將執行匿名函數其尺寸更改爲12
我不明白,是如果你改變了這樣的代碼:
function makeSizer(size) {
document.body.style.fontSize = size + 'px';
}
並在點擊事件時調用makeSizer(12)而不是size12,它不起作用。
好吧,我得到這是什麼使封閉有趣,但爲什麼我的修改不起作用?
Regard, Charles。
什麼「不工作」究竟是什麼意思?顯示完整的「不工作」示例並解釋您期望從中得到什麼結果。 – zerkms
因爲'onclick'需要一個'function',所以當你使用'makeSizer(12)'進行修改時,它會執行該函數,並將'onclick'設置爲返回的內容,在這種情況下是'undefined'。即使你使用'size12'進行改變也是行不通的。 – George
昆汀是正確的我的問題是重複的,現在我明白我的錯誤。感謝您的答案! – Charles