0
私はjavascriptクロージャのexpempleを読んでいました。私が理解していないことが1つあります。ここでJavascript closure vs regular function
はexempleです、私は理解してどのようなFidle Exemple
あなたは元のための要素サイズ-12をクリックしたとき、あなたは無名関数を実行しますです:ここで
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;
がいっぱいexempleですこれは私が理解していない何12
にサイズを変更し、あなたがコードをこのように変更した場合である:
function makeSizer(size) {
document.body.style.fontSize = size + 'px';
}
クリックイベントでsize12ではなくmakeSizer(12)を呼び出すと動作しません。
私はこれが何を閉鎖するのか興味深いですが、なぜ私の修正が機能しないのですか?
Regard、 チャールズ。
"うまくいかない"とはどういう意味ですか?完全な「うまくいかない」例を示し、あなたがそれからどんな結果を期待するか説明してください。 – zerkms
'onclick'は' function'を期待しているので、 'makeSizer(12)'を変更して使用すると、その関数を実行し、返されるものに 'onclick'を設定します。この場合、' undefined'です。 'size12'を使って変更しても動作しません。 – George
クエンティンは私の質問が重複していたので、今私は間違いを理解しています。すべてのあなたの答えをありがとう! – Charles