En nuestro desarrollo diario, a menudo encontramos una situación en la que queremos que una función se ejecute solo una vez, especialmente cuando algunos bucles o ejecución cronometrada.
Sin más ADO, simplemente suba el código:
function runonce (fn, context) {// Controle la función para activar la función de retorno () {try {fn.apply (context || this, argumentos); } catch (e) {console.error (e); // Generalmente puede comentar esta línea} Finalmente {fn = null; }}} // Uso 1: var a = 0; var canonlyfireonce = runonce (function () {a ++; console.log (a);}); canonylyfireonce (); // 1CanonlyFireonce (); // nada canonelyfireonce (); // Nada // Uso 2: var name = "Zhang San"; var canonlyfireonce = runonce (function () {console.log ("hola" + this.name);}); canonlyfireonce (); // Hola Zhang San CanonlyFireonce (); // Nada // Uso 3: var obj = {nombre: "Los gansos solitarios del mundo", edad: 24}; var canonlyfireonce = runonce (function () {console.log ("hola" + this.name);}, obj); canonlyfireonce (); // Hola, Tianya, Canonlyfireonce (); // nadaPorque después de que la función de retorno se ejecuta una vez, fn = null lo establece no nulo, por lo que no se ejecutará más adelante. Publicar otro código compartido por otros en línea, el principio es el mismo:
función una vez (fn, context) {resultado var; Función de retorno () {if (fn) {result = fn.apply (context || this, argumentos); fn = nulo; } resultado de retorno; };} // useVar canonylyfireonce = una vez (function () {console.log ('Fired!');}); canonylyfireonce (); // "¡Despedido!" canonylyfireonce (); // nadaLo anterior es una colección de los ejemplos de funciones para dejar que JavaScript se ejecute solo una vez. Si lo necesita, puede consultarlo.