𝗙𝗮𝗰𝘁𝗼𝗿𝘆 𝗙𝘂𝗻𝗰𝘁𝗶𝗼𝗻𝘀 𝗮𝗻𝗱 𝗖𝗼𝗻𝘀𝘁𝗿𝘂𝗰𝘁𝗼𝗿 𝗙𝘂𝗻𝗰𝘁𝗶𝗼𝗻𝘀 𝗶𝗻 𝗝𝗮𝘃𝗮𝗦𝗰𝗿𝗶𝗽𝘁

Nesneleri tek tek oluşturmak bir hatadır.

Her kullanıcı veya sınıf arkadaşı için manuel bir nesne yazarsanız, kodu tekrar etmiş olursunuz. Eğer 100 kullanıcınız varsa, aynı mantığı 100 kez yazarsınız. Bu da hatalara (bug) yol açar. Daha sonra yanlışlıkla bir özelliği değiştirip uygulamanızı bozabilirsiniz.

Temiz kod yazmak için bunun yerine şu iki deseni (pattern) kullanın.

  1. Factory Function'lar

Gerçek bir fabrika düşünün. Hammaddeler girer, bitmiş bir ürün çıkar.

Bir factory function parametreler alır ve yeni bir nesne döndürür.

Örnek:

function classFactory(name) {
    return {
        reply() {
            return `${name} is present`
        }
    }
}

Avantajları:

  1. Constructor Function'lar

Constructor function'lar da nesne oluşturur. "new" anahtar kelimesini ve "this" anahtar kelimesini kullanırlar. Geleneksel olarak (convention), bunlar büyük harfle başlatılır.

Örnek:

function Classmate(name) {
    this.name = name
    this.reply = function() {
        return `${this.name} is present`
    }
}

"new" kullandığınızda, JavaScript işi sizin yerinize yapar:

Bir "return" ifadesine ihtiyacınız yoktur.

Kodunuzu ölçeklendirmek

Büyük miktarda veriyi işlemek için bu desenleri dizilerle (arrays) birleştirebilirsiniz. Her ismi tek tek yazmak yerine bir map fonksiyonu kullanın.

Örnek:

const names = ['Kali', 'Andrew', 'Pearl', 'Percy']
const classmates = names.map(name => new Classmate(name))

Artık kullanıma hazır bir nesne listeniz var.

Özet:

Kaynak: https://dev.to/pearlodi/factory-functions-and-constructor-functions-in-javascript-lmb