vue+js 如何让一个函数只执行一次
时间: 2024-04-10 22:27:35 浏览: 167
可以使用闭包结合变量来实现让一个函数只执行一次的效果。具体的实现方式如下:
```javascript
function runOnce() {
let executed = false; // 标记函数是否已执行
return function() {
if (!executed) { // 如果函数未执行,则执行函数
executed = true;
// 执行你想要执行的代码
console.log("函数执行了一次");
}
};
}
const myFunction = runOnce();
myFunction(); // 函数执行了一次
myFunction(); // 不会执行
```
上述代码中,`runOnce` 函数返回了一个闭包,内部定义了一个 `executed` 变量用来标记函数是否已经执行。每次调用 `myFunction` 函数时,都会检查 `executed` 变量的值,如果为 `false` 则执行函数并将 `executed` 设置为 `true`,这样就确保了函数只会执行一次。
另外,你也可以使用 ES6 的箭头函数和类似的思路来实现:
```javascript
const runOnce = (() => {
let executed = false;
return () => {
if (!executed) {
executed = true;
console.log("函数执行了一次");
}
};
})();
runOnce(); // 函数执行了一次
runOnce(); // 不会执行
```
这种方式利用了立即执行函数表达式 (IIFE) 和箭头函数的特性,在定义函数的同时直接执行,达到了同样的效果。
阅读全文