You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2.7 KiB

30 Days Of JavaScript: Closures

Twitter Follow

Author: Asabeneh Yetayeh
January, 2020

<< Gün 18 | Gün 20 >>

Thirty Days Of JavaScript

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.

function outerFunction() {
    let count = 0;
    function innerFunction() {
        count++
        return count
    }

    return innerFunction
}
const innerFunc = outerFunction()

console.log(innerFunc())
console.log(innerFunc())
console.log(innerFunc())
1
2
3

Inner(iç) fonksiyonlara daha fazla örnek vermek gerekirse

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)
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 | Gün 20 >>