gpt4 book ai didi

javascript - 如果我们想在柯里化(Currying)中保留一个值,javascript 的闭包如何工作

转载 作者:行者123 更新时间:2023-11-28 13:31:09 25 4
gpt4 key购买 nike

代码我已经写好了

// Handlers
function successHandlerFactory (savedFlag) {

return function (res, savedFlag){
if (res.data && res.status == 200) {
ngcoupon_offerManager.addOffers(res.data.offers, -1, savedFlag);
console.log('offers response', res, 'savedFlag', savedFlag);
} else {
console.error('something is wrong to get offers', res);
}
}
};

var offerSuccessHandler = function() {
return successHandlerFactory();
}();
var savedofferSuccessHandler = function () {
return successHandlerFactory(true);
}();

但显然它在我每次执行时都会给出savedFlag undefined

这怎么行不通

最佳答案

问题出在这部分代码中:

function successHandlerFactory (savedFlag) {
return function (res, savedFlag){
...

您在内部函数中重新声明 savedFlag,它最终成为成功处理程序中捕获的变量。尝试简单地删除返回函数的第二个参数。

关于javascript - 如果我们想在柯里化(Currying)中保留一个值,javascript 的闭包如何工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24769602/

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