gpt4 book ai didi

javascript - 返回一个函数 Chrome Dev 工具

转载 作者:数据小太阳 更新时间:2023-10-29 05:14:55 24 4
gpt4 key购买 nike

这个问题可能在其他地方有答案,但我什至不确定如何开始寻找答案。我是 JavaScript 的新手,所以这对我来说很难理解。

给定以下代码:

function multiple(n) {
function f(x) {
return x * n;
}
return f;
}
var triple = multiple(3);
var quadruple = multiple(4);

当我将以下内容传递到控制台时:

console.log(triple(5));

我得到了我期望的结果,即 15。同样,对于任何数字,它都会变成三倍(如果我使用第二个函数,它会变成四倍)。

但是当我在控制台中输入 triple 时,我得到以下代码:

f(x) {
return x * n;
}

控制台不应该返回...

f(x) {
return x * 3;
}

...因为 3 是通过以下代码编码到函数中的:

var triple = multiple(3);

最佳答案

3 硬编码到函数中。 f 的代码是指变量n,而不是数字3。在您的代码中,碰巧没有办法修改 n,但想象一些代码,其中 有一种修改 n 的方法:

function multiple(n) {
function f(x) {
return x * n;
}
function modifyN(newN) {
n = newN;
}
return { f: f, modifyN: modifyN };
}
var resultFor3 = multiple(3);
var triple = resultFor3.f;
var modifyTripleN = resultFor3.modifyN;

如您所见,n 不是硬编码的;它与任何其他变量没有什么不同。在您的特定示例中,无法在 multiple 终止后修改 n ,但这不会使 调用创建的闭包内部的值多个以任何方式“硬编码”。

关于javascript - 返回一个函数 Chrome Dev 工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34400940/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com