当其中只有一个参数但有两个变量时,闭包如何工作?
How does a closure work when there's only one parameter but two variables in it?
这是我正在谈论的功能:
function multiplier(factor) {
return number => number * factor;
}
let twice = multiplier(2);
console.log(twice(5));
// output → 10
在这个函数中不应该 number
是未定义的,因为我们只给出一个参数。该参数乘以数字并存储在数字中..但是与 undefined
相乘的任何东西都是 NaN
,对吧? number = 1
在这里吗?
由于 multiplier
函数 return 使用值为 factor
的箭头函数,遵循简单定义是一种不同的语法。
function twice(number) {
// Value 2 is part of function definition as returned from multiplier() function
return number * 2;
}
在 console.log(twice(5))
中,您传递的参数值是 5,因此它将 return 5 * 2
。
function multiplier(factor) {
return number => number * factor;
}
let twice = multiplier(2);
乘以returns一个函数,所以两次是这样的:
twice = number => number * factor
这是我正在谈论的功能:
function multiplier(factor) {
return number => number * factor;
}
let twice = multiplier(2);
console.log(twice(5));
// output → 10
在这个函数中不应该 number
是未定义的,因为我们只给出一个参数。该参数乘以数字并存储在数字中..但是与 undefined
相乘的任何东西都是 NaN
,对吧? number = 1
在这里吗?
由于 multiplier
函数 return 使用值为 factor
的箭头函数,遵循简单定义是一种不同的语法。
function twice(number) {
// Value 2 is part of function definition as returned from multiplier() function
return number * 2;
}
在 console.log(twice(5))
中,您传递的参数值是 5,因此它将 return 5 * 2
。
function multiplier(factor) {
return number => number * factor;
}
let twice = multiplier(2);
乘以returns一个函数,所以两次是这样的:
twice = number => number * factor