CV
Formations
Projets
Blog
TechMastry
Contact
Bonjour !
Je galère un peu avec le concept des closures en JavaScript. J'ai lu plusieurs articles mais j'ai du mal à saisir l'utilité pratique.
function outer() { let count = 0; return function inner() { count++; return count; } } const counter = outer(); console.log(counter()); // 1 console.log(counter()); // 2
Merci pour vos explications ! 🤓
Les closures sont super utiles ! Voici des cas concrets :
function createValidator(rules) { return function(data) { return rules.every(rule => rule(data)); }; } const emailValidator = createValidator([ data => data.includes('@'), data => data.length > 5 ]);
function createBankAccount(initialBalance) { let balance = initialBalance; return { deposit: (amount) => balance += amount, withdraw: (amount) => balance -= amount, getBalance: () => balance }; }
function debounce(func, delay) { let timeoutId; return function(...args) { clearTimeout(timeoutId); timeoutId = setTimeout(() => func.apply(this, args), delay); }; }
Les closures permettent de crĂ©er des "environnements persistants" ! đź§