js给定一个函数fn,它返回一个新的函数,返回的函数与原始函数完全相同,fn只能被调用一次
时间: 2024-04-17 21:24:56 浏览: 33
js只执行1次的函数示例
5星 · 资源好评率100%
您好!对于您的问题,我可以提供以下解决方案:
```javascript
function fn() {
let called = false;
return function() {
if (!called) {
called = true;
return fn();
} else {
throw new Error("fn can only be called once.");
}
}
}
```
这里的 `fn` 函数返回一个匿名函数,每次调用该函数时,它会检查一个标志位 `called` 是否为 `false`。如果是第一次调用,则将 `called` 设置为 `true`,然后再次调用 `fn()` 函数(递归调用),返回一个新的函数。如果 `called` 已经为 `true`,则抛出一个错误。
这样,您可以通过以下方式使用 `fn` 函数:
```javascript
const newFn = fn();
newFn(); // 第一次调用
newFn(); // 抛出错误
```
希望能够解决您的问题!如果还有其他问题,请随时提问。
阅读全文