diff --git a/Turkish/19_Day_Closures/19_day_closures.md b/Turkish/19_Day_Closures/19_day_closures.md new file mode 100644 index 00000000..b0c91f96 --- /dev/null +++ b/Turkish/19_Day_Closures/19_day_closures.md @@ -0,0 +1,104 @@ +
+ +[<< 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) \ No newline at end of file