这个问题可以在别处回答,但我甚至不确定如何开始寻找答案.我是JavaScript的新手,所以这个让我很难理解.
给出以下代码:
function multiple(n) {
function f(x) {
return x * n;
}
return f;
}
var triple = multiple(3);
var quadruple = multiple(4);
Run Code Online (Sandbox Code Playgroud)
当我将以下内容传递到控制台时:
console.log(triple(5));
Run Code Online (Sandbox Code Playgroud)
我得到了我期望的结果,即15.同样,任何数字都会增加三倍(如果我使用第二个函数,则会增加四倍).
但是当我在控制台中键入三元组时,我得到以下代码:
f(x) {
return x * n;
}
Run Code Online (Sandbox Code Playgroud)
控制台不应该返回......
f(x) {
return x * 3;
}
Run Code Online (Sandbox Code Playgroud)
...因为3通过以下代码编码到函数中:
var triple = multiple(3);
Run Code Online (Sandbox Code Playgroud)