Exécuter une fonction JavaScript une seule fois

"once" est une fonction JavaScript qui permet de n'exécuter une function qu'une seule et unique fois.

function once(a, b) {
  var c;
  return function() {
    if (a) {
      c = a.apply(b || this, arguments);
      a = b = null;
    }
    return c;
  };
}

Pour l'utiliser, il suffit de déclarer une variable avec un appel à "once" qui prend en argument la fonction à exécuter.

var o = once(function() {
  console.log('PASSE');
});

o(); // renvoie : "PASSE"
o(); // ne renvoie rien

Si la fonction en argument retourne une valeur et que la variable est exécutée plusieurs fois, elle retournera alors le même résultat que pour sa première exécution.

var o = once(function(a) {
  return a;
});

console.log(o('test 1')); // renvoie : "test 1"
console.log(o('test 2')); // renvoie : "test 1"

Cet article vous a-t-il été utile ?

Super :)
Merci d'avoir donné votre avis !

Oups :(
Merci d'avoir donné votre avis qui va nous permettre de nous améliorer !

^