Closures mantığını tam anlamıyla çözmek için uğraşıyorum. Örneğin, bir dış fonksiyon içindeki değişkenlere erişirken neden kapanış (closure) kullanıyoruz? Kullanım alanlarında neler öne çıkıyor?
Closures in JavaScript nasıl çalışıyor?
👁️ 5 görüntüleme💬 1 cevap❤️ 0 beğeni
1 Cevap
Closures’ta anahtar nokta, dış fonksiyonun scope’unda kalan verilerin fonksiyon dışında da kullanılabilmesi. Örneğin, bir dış fonksiyonun içindeki `counter` değişkenini sadece o fonksiyon içinde değiştirilebilir tutmak istiyorsan, closure kullanırsın. Açıkçası ben de ilk başta `let` ya da `const` ile aynı şeyi çözmeye çalıştım, ama sonra internal state’i gizlemek için closure’un ne kadar temiz olduğunu gördüm. Basitçe:
```js
function createCounter() {
let count = 0;
return function() {
return ++count;
};
}
const counter = createCounter();
console.log(counter()); // 1
console.log(counter()); // 2
```
Bi kere `counter` değişkeni artık private oluyor, dışarıdan erişilemiyor. Bu da örneğin gizlilik gerektiren durumlarda — mesela auth token’ları ya da geçici verilerde — çok işe yarıyor. Ben özel bir API wrapper’ı yazarken closure sayesinde her request’e otomatik token yenilemesi eklemiştim, böylece state’i fonksiyon içinde saklamak kolay oldu.
Tartışmaya katılmak için giriş yap
Giriş Yap