30 Days Of JavaScript: Closures

Twitter Follow Author: Asabeneh Yetayeh
January, 2020
[<< Gün 18](../18_Day_Promises/18_day_promises.md) | [Gün 20 >>](../20_Day_Writing_clean_codes/20_Day_writing_clean_codes.md) ![Thirty Days Of JavaScript](../../images/banners/day_1_19.png) - [Gün 19](#gün-19) - [Closure](#closure) - [Egzersizler](#egzersizler) - [Egzersiz: Seviye 1](#egzersiz-seviye-1) - [Egzersiz: Seviye 2](#egzersiz-seviye-2) - [Egzersiz: Seviye 3](#egzersiz-seviye-3) # Gün 19 ## Closure JavaScript, bir outer(dış) fonksiyonu içine yazma fonksiyonu izni verir. İstediğimiz kadar inner(iç) fonksiyon yazabiliriz. Inner fonksiyon, outer fonksiyonun değişkenlerine erişiyorsa, buna closure(kapatma) denir. ```js function outerFunction() { let count = 0; function innerFunction() { count++ return count } return innerFunction } const innerFunc = outerFunction() console.log(innerFunc()) console.log(innerFunc()) console.log(innerFunc()) ``` ```sh 1 2 3 ``` Inner(iç) fonksiyonlara daha fazla örnek vermek gerekirse ```js function outerFunction() { let count = 0; function plusOne() { count++ return count } function minusOne() { count-- return count } return { plusOne:plusOne(), minusOne:minusOne() } } const innerFuncs = outerFunction() console.log(innerFuncs.plusOne) console.log(innerFuncs.minusOne) ``` ```sh 1 0 ``` 🌕 İlerleme kaydediyorsun. Hızınızı koruyun, iyi işlere devam edin. Şimdi beyniniz ve kasınız için bazı egzersizler yapın. ## Egzersizler ### Egzersiz: Seviye 1 1. Bir inner(iç) fonksiyonu olan closure yapısı oluşturun. ### Egzersiz: Seviye 2 1. Üç tane inner(iç) fonksiyonu olan closure yapısı oluşturun. ### Egzersiz: Seviye 3 1. Bir personAccount outer(dış) fonksiyonu oluşturun. Ad, soyad, gelir ve gider inner(iç) değişkenleridir. totalIncome, totalExpense, accountInfo,addIncome, addExpense ve accountBalance inner fonksiyonlara sahiptir. 🎉 TEBRİKLER ! 🎉 [<< Gün 18](../18_Day_Promises/18_day_promises.md) | [Gün 20 >>](../20_Day_Writing_clean_codes/20_Day_writing_clean_codes.md)