编写一个函数,接受回调作为输入并返回一个函数。当第一次调用返回的函数时,它应该调用回调并返回该输出。如果多次调用它,它不会再次调用回调,而是简单地返回第一次调用时的输出值。
帮助!我遇到了类似语法错误非法返回语句的错误,我在为上述挑战编写闭包时陷入困境,这是我的代码:
function once(func) {
var called = 0,result;
function inner(num){
if(!result && called <2){
called++;
result = func(num);
return result;
}else{
return result;
}
}
}
return inner;
}
最佳答案
您需要在函数外部声明被调用的变量
var called = 0;
function once(func) {
var result;
function inner(num){
if(!result && called <2){
called++;
result = func(num);
return result;
}else{
return result;
}
}
return inner;
}
关于javascript - 函数一次接受回调作为输入并返回一个函数。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53001838/