关于闭包的疑问

function makeSizer(size) {
  return function() {
    document.body.style.fontSize = size + 'px';
  };
}

var size12 = makeSizer(12);
var size14 = makeSizer(14);
var size16 = makeSizer(16);

不能更改为

function makeSizer(size) {
    return document.body.style.fontSize = size + 'px';
}

var size12 = makeSizer(12);
var size14 = makeSizer(14);
var size16 = makeSizer(16);

详细代码 见地址

阅读 2k
2 个回答

你后面的代码连返回值都没有,你这几个变量都是undefined

不知道题主是什么意思呢?

一开始的makeSizer用法就是返回一个可以改变字体大小的函数,然后用onClick去触发。

如果用你后面的函数的话就是执行了之后直接改变字体大小,所以函数名叫makeSize比较好。

你可以自己写出来试试。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题