Javascript 如何只调用一次函数,而任何后续调用都返回第一次调用的最后一个值?

Javascript 如何只调用一次函数,而任何后续调用都返回第一次调用的最后一个值?,javascript,function,return,invoke,Javascript,Function,Return,Invoke,下面代码的目标是让传递到fn的任何函数只调用一次。e、 g.结果返回5,下面的重复调用也应返回相同的数字。我现在所拥有的总是返回一个新的号码,而不是相同的号码 功能一次(fn){ var done=false; 返回函数(){ 如果(!完成){ 完成=正确; 返回fn.apply(这是参数); }否则,如果(完成){ 返回fn.apply(这是参数); } }; } 函数添加(x,y){ 返回x+y; } var addOnce=一次(添加); var结果=添加一次(2,3); 结果=添加一次

下面代码的目标是让传递到fn的任何函数只调用一次。e、 g.结果返回5,下面的重复调用也应返回相同的数字。我现在所拥有的总是返回一个新的号码,而不是相同的号码

功能一次(fn){
var done=false;
返回函数(){
如果(!完成){
完成=正确;
返回fn.apply(这是参数);
}否则,如果(完成){
返回fn.apply(这是参数);
}
};
}
函数添加(x,y){
返回x+y;
}
var addOnce=一次(添加);
var结果=添加一次(2,3);

结果=添加一次(4,4)为了获得相同的值,您可以存储该值并在每次调用时返回该值

功能一次(fn){
var done=false,
价值
返回函数(){
如果(!完成){
完成=正确;
value=fn.apply(这是参数);
}
返回值;
};
}
函数添加(x,y){
返回x+y;
}
var addOnce=一次(添加);
console.log(addOnce(2,3));//5.

console.log(addOnce(4,4));//5
请同时添加想要的结果。你好,Alex。欢迎来到stackoverflow!。我不是100%确定你想要完成什么。然而,我觉得这可能是你问题的答案