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!