繁体   English   中英

当只有一个参数但有两个变量时,闭包如何工作?

[英]How does a closure work when there's only one parameter but two variables in it?

这是我正在谈论的function:

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

let twice = multiplier(2);
console.log(twice(5));

// output → 10

在这个 function 中, number不应该是未定义的,因为我们只给出一个参数。 并且该参数被乘以并存储在数字中..但是与undefined相乘的任何东西都是NaN ,对吗? number = 1在这里吗?

由于multiplier function 返回箭头 function ,其值为factor ,因此遵循简单定义的语法不同。

function twice(number) {
   // Value 2 is part of function definition as returned from multiplier() function
   return number * 2;
}

console.log(twice(5))中,您传递参数值 5,因此它将返回5 * 2

function multiplier(factor) {
    return number => number * factor;
}
let twice = multiplier(2);

乘数返回一个 function,所以两次是这样的:

twice = number => number * factor

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM