gpt4 book ai didi

javascript - 运行一次函数时为 NaN

转载 作者:行者123 更新时间:2023-11-30 09:52:33 25 4
gpt4 key购买 nike

我创建了一个函数,该函数旨在执行一次函数,以后对被调用函数的任何调用都将作为第一次调用的结果。

once = function(fun){
var beenCalled = false;
var answer;
return function() {
if (beenCalled === true) {
return answer;
} else {
beenCalled = true;
answer = fun();
return answer;
}
}
};

var add = once(function(x,y,z) {
return x + y + z;
});

console.log(add(1,2,3));
console.log(add(4,5,6));

我希望控制台记录“6”和“6”,而不是记录“Nan”和“NaN”,我不确定为什么。我很确定问题出在“answer = fun();”行,但我不太确定是什么。

最佳答案

当您调用 fun 时,您必须传递给定的参数。

once = function(fun){
var beenCalled = false;
var answer;
return function() {
if (beenCalled === true) {
return answer;
} else {
beenCalled = true;
answer = fun.apply(null, arguments);
return answer;
}
}
};

var add = once(function(x,y,z) {
return x + y + z;
});

console.log(add(1,2,3));
console.log(add(4,5,6));

关于javascript - 运行一次函数时为 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35638690/

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