Maison > interface Web > js tutoriel > le corps du texte

Comment puis-je créer une fonction en JavaScript qui ne s'exécute qu'une seule fois ?

Linda Hamilton
Libérer: 2024-10-22 23:32:29
original
678 Les gens l'ont consulté

How Can I Create a Function in JavaScript That Executes Only Once?

Création d'une fonction en JavaScript exécutable une seule fois

En JavaScript, il est parfois nécessaire de restreindre l'exécution d'une fonction à une seule instance. Alors que les variables statiques peuvent y parvenir dans des langages comme C , JavaScript offre une solution plus élégante grâce aux fermetures.

Une fermeture, une fonction qui préserve son contexte même après la fin de sa portée englobante, permet la création de fonctions qui ne peut être invoqué qu’une seule fois. En encapsulant l'indicateur d'exécution dans une fermeture, nous pouvons garantir qu'il reste persistant et inaccessible au code externe.

Voici un exemple d'utilisation d'une fermeture pour créer une fonction exécutable unique :

<code class="javascript">var something = (function() {
    var executed = false;
    return function() {
        if (!executed) {
            executed = true;
            // do something
        }
    };
})();

something(); // "do something" happens
something(); // nothing happens</code>
Copier après la connexion

Cette fonction garantit que le code inclus dans la fermeture n'est exécuté qu'une seule fois, malgré les invocations ultérieures.

Alternativement, si vous préférez une approche plus encapsulée, vous pouvez utiliser une fonction utilitaire comme celle ci-dessous :

<code class="javascript">function once(fn, context) { 
    var result;
    return function() { 
        if (fn) {
            result = fn.apply(context || this, arguments);
            fn = null;
            context = null;
        }
        return result;
    };
}</code>
Copier après la connexion

Utilisation :

<code class="javascript">function something() { /* do something */ }
var one_something = once(something);

one_something(); // "do something" happens
one_something(); // nothing happens</code>
Copier après la connexion

Cette fonction utilitaire renvoie une fonction qui met en cache le résultat de la première invocation et désactive les exécutions ultérieures.

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!

source:php
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!