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

Het één voor één aanmaken van objecten is een fout.

Als je 100 klasgenoten hebt en voor elk een object moet aanmaken, leidt het schrijven van individuele objecten tot problemen. Je herhaalt je logica te vaak. Je loopt ook het risico op bugs. Bijvoorbeeld, je zou later in je code per ongeluk een eigenschapsnaam kunnen overschrijven.

Je hebt een betere manier nodig om logica te hergebruiken.

Factory Functions Denk aan een fabriek. Je stopt er grondstoffen in en krijgt een eindproduct. Een factory function doet hetzelfde. Het neemt parameters aan en geeft een nieuw object terug.

Example:

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

Deze aanpak houdt de naam veilig. Je kunt de naam niet per ongeluk wijzigen omdat deze binnen de scope van de functie blijft. Je schrijft de logica één keer en hergebruikt deze vele malen.

Constructor Functions Constructor functions maken ook objecten aan. Ze gebruiken het this-trefwoord en het new-trefwoord. Volgens de conventie beginnen deze functies met een hoofdletter.

Example:

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

Wanneer je het new-trefwoord gebruikt, doet JavaScript het werk voor je. Het maakt een nieuw object aan, wijst het toe aan this en geeft het automatisch terug. Je hebt geen return-statement nodig.

Je code schalen Je kunt deze methoden combineren met arrays om grote hoeveelheden gegevens te verwerken.

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

classmates.forEach(c => console.log(c.reply()))

Dit maakt je code schoon en schaalbaar.

Het hoofddoel is simpel:

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