Maison  >  Article  >  interface Web  >  Comment garantir l’exécution unique des fonctions en JavaScript ?

Comment garantir l’exécution unique des fonctions en JavaScript ?

Barbara Streisand
Barbara Streisandoriginal
2024-10-23 00:19:03429parcourir

How to Ensure Single-Execution of Functions in JavaScript?

Fonction à exécution unique en JavaScript

En JavaScript, garantir qu'une fonction ne s'exécute qu'une seule fois peut être obtenu grâce à diverses techniques.

Solution basée sur la fermeture

Pour les situations où plusieurs appels à la fonction ne doivent pas déclencher son exécution, une fermeture peut être utilisée :

var onceFunction = (function() {
    var alreadyExecuted = false;
    return function() {
        if (!alreadyExecuted) {
            alreadyExecuted = true;
            // Execute the desired actions
        }
    };
})();

onceFunction(); // Executes
onceFunction(); // No execution (alreadyExecuted is true)

Fonction de bibliothèque

Plusieurs bibliothèques JavaScript populaires, telles que Underscore et Ramda, fournissent une fonction utilitaire pratique nommée once(). Cette fonction accepte une fonction comme argument et renvoie une fonction wrapper qui garantit que la fonction fournie n'est exécutée qu'une seule fois :

const onceFunction = once(function() { /* Your code here */ });

onceFunction(); // Executes
onceFunction(); // No execution (function is cached)

Fonction utilitaire personnalisée

Si les bibliothèques externes ne sont pas disponibles, une fonction utilitaire personnalisée peut être créée :

const once = (func, context) => {
    let result;
    return () => {
        if (func) {
            result = func.apply(context || this, arguments);
            func = null;
        }
        return result;
    };
};

const oneTimeFunction = once(function() { /* Your code here */ });

oneTimeFunction(); // Executes
oneTimeFunction(); // No execution (function is nullified)

Ces techniques fournissent des méthodes élégantes et fiables pour créer des fonctions à exécution unique en JavaScript, répondant à l'exigence énoncée dans la question.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn