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

问题描述 投票:0回答:1

这是我说的函数。

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

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

// output → 10

在这个函数中,不应该是 number 是未定义的,因为我们只给了一个参数。而这个参数会被乘法并存储在数字中......但任何与 undefinedNaN,对吗?是 number = 1 这里有什么问题吗?

javascript closures
1个回答
1
投票
function multiplier(factor) {
    return number => number * factor;
}
let twice = multiplier(2);

乘法器返回一个函数,所以两次是这样的。

twice = number => number * factor

1
投票

因为......乘法器返回一个函数,所以两次是这样的 multiplier 函数返回一个箭头函数,值为 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.

© www.soinside.com 2019 - 2024. All rights reserved.