只执行一次函数

1,182 阅读1分钟

*在很多的时候,我们只想要一个函数只执行一次,不希望它执行第二次,这个时候我们可以通过一个函数来实现这个操作`

function once(fn) {
  let called = false;
  return function () {
    if (!called) {
      called = true;
      //这里改变了this的指向
      fn.apply(this, arguments);
    }
  };
}
function launchRocket() {
  console.log("我已经执行了");
}
function handle(){
  console.log('执行了一次')
}
const onceFunction  = once(handle)
//我们把我们只需要执行一次的函数传入给once,然后用一个新的函数来接受它,这个新的函数onceFunction就只能执行一次。
onceFunction()
```*`