gpt4 book ai didi

Javascript 闭包与常规函数

转载 作者:行者123 更新时间:2023-12-03 03:55:40 26 4
gpt4 key购买 nike

我正在阅读 javascript 闭包的示例。还有一件事我不明白。

示例如下:

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

据我了解,当您单击 ex 的元素 size-12 时,您将执行将大小更改为 12 的匿名函数。

我不明白的是,如果你这样改变代码:

function makeSizer(size) {

document.body.style.fontSize = size + 'px';

}

并在点击事件上调用 makeSizer(12) 而不是 size12,它不起作用。

好吧,我明白这就是让闭包变得有趣的原因,但为什么我的修改不起作用?

尊敬,查尔斯。

最佳答案

onclick属性期望传递一个函数。在第二个示例中,情况并非如此,因为 makeSizer(12) 不是函数,而是函数调用。为了让它工作,你需要将它包装在一个匿名函数中,例如:

document.getElementById('size-12').onclick = function() {makeSizer(12);};

关于Javascript 闭包与常规函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44964119/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com