我正在读能言善辩JS和寻找澄清这一段代码:分配给在Javascript变量函数的附加参数受封
function multiplier(factor) {
return function(number) {
return number * factor;
};
}
var twice = multiplier(2);
console.log(twice(5));
// → 10
我了解封概念,但我被卡在最后一行中的方式是twice(5)
。 Eloquent JS says:
“在这个例子中,乘数返回一个被冻结的代码块,它存储在两次变量中,最后一行然后调用这个变量的值,导致冻结代码(返回数字*因子;)它仍然可以从创建它的乘法器调用中访问因子变量,此外它还可以访问通过其数字参数解冻时通过的参数5。“
是”额外的访问“的论点5
当解冻关闭功能时通过?当两次是一个变量时,这是如何工作的?
返回的唯一的事情就是里面是什么返回关键字后函数的大括号。 – Kunok
@Kunok,不仅。它也可以访问“因素”。 –
是的,它返回表达式:'number * factor'。你可以把它看成一个单一的东西,因为一旦它被执行,它就是一个单一的值,一个表达式的结果。 – Kunok