gpt4 book ai didi

Javascript 可链接闭包

转载 作者:行者123 更新时间:2023-11-30 10:00:02 24 4
gpt4 key购买 nike

灵感来自 If Hemingway Wrote Javascript ,我正在尝试编写一个带有私有(private)局部变量的可链接函数闭包。

预期的行为是:

> chainableCounter()
0
> chainableCounter(1)(2)()
3

这是我的代码:

function chainableCounter(n) {
var acc = 0;

var fn = function (x) {
if (x === undefined) {
return acc;
} else {
acc = acc + x;
return fn;
}
};

fn(n);
}

当我尝试在节点 REPL 中运行它时,这就是我得到的:

> chainableCounter()
undefined
> chainableCounter(1)
undefined
> chainableCounter(1)()
TypeError: undefined is not a function

chainableCounter(1) 返回 undefined 而不是函数对象似乎表明我们永远不会碰到 return fn; 行.但不仅如此,为什么 chainableCounter() 在应该返回 0 时也返回 undefined?我错过了什么?

最佳答案

fn(n) 返回调用点。您的实际函数 chainableCounter 不返回任何内容,它没有返回语句。

您可以在调用 fn 之前添加它,如下所示:

return fn(n);

关于Javascript 可链接闭包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32171672/

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