javascript - 封闭函数行为困惑

标签 javascript

function multiplier(factor) {
  return function(number) {
    return number * factor;
  };
}

var twice = multiplier(2);
console.log(twice(5));
//output 10

有人可以解释为什么“数字”参数没有返回为未定义吗?我真的很难理解如何将变量“两次”定义为具有固定值 2 作为其参数的函数,然后可以将其用作具有可传递参数 5 的函数?

最佳答案

简答:

当您有 var twice = multiplier(2); 时,与: twice = function (number) {返回数字 * 2};

假设 Multiplier 是一个类,它有一个属性 factor(需要初始化对象),当 Multiplier 被初始化时它返回一个函数,该函数接受 number并乘以 factor

关于javascript - 封闭函数行为困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31949744/

相关文章:

javascript - 通过 Node 脚本减少 CSS

JavaScript 表单提交

javascript - 如何在日期中减去年份并添加月份?

javascript - jquery:创建幻灯片轮播

javascript - 在滚动上添加类不起作用?

javascript - 使用 $.number() 时禁用 keyup/keydown 格式 - Custom D 的 jQuery Number 插件

javascript - Sprite 动画的错误移动速度

javascript - Express 正在提供 index.html 而不是我的 Webpack 包。我的配置文件有问题吗?

javascript - DatePicker 开始日期和结束日期验证,无需插件

javascript - Javascript 中用于分隔单词的正则表达式