estoy creando una función javascript básica que funciona con onclick pero siempre está ejecutando la declaración else que solo quiero que se ejecute una vez
aquí está mi guión
function onlyOnce() { var runOnce = false; console.log("i'm running but i didn't go to the else statement yet") if (runOnce) { return } else { console.log("i'm running and i'm in the else statement") return runOnce = true; } }cualquier ayuda será apreciada
La variable runOnce se define en la función, y después de salir de la función, su valor se olvida. Al ingresar a la función, su valor se establecerá en false nuevamente.
Una forma de resolver esto es sacando la variable de la función:
let runOnce = false; // let is usually recommended over var function onlyOnce() { console.log("i'm running but i didn't go to the else statement yet"); if (runOnce) { return; } else { console.log("i'm running and i'm in the else statement"); runOnce = true; } }También podría crear una clase tal que la función/método esté asociado con los datos:
class Something { constructor() { this.runOnce = false; } onlyOnce() { console.log("i'm running but i didn't go to the else statement yet"); if (this.runOnce) { return; } else { console.log("i'm running and i'm in the else statement"); this.runOnce = true; } } } let something = new Something(); something.onlyOnce(); // Prints second statement something.onlyOnce(); // Prints first statement