Maison >interface Web >js tutoriel >Comment puis-je créer une fonction en JavaScript qui ne s'exécute qu'une seule fois ?
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>
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>
Utilisation :
<code class="javascript">function something() { /* do something */ } var one_something = once(something); one_something(); // "do something" happens one_something(); // nothing happens</code>
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!