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

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

Als je voor elke gebruiker of klasgenoot handmatig een object schrijft, herhaal je code. Als je 100 gebruikers hebt, schrijf je 100 keer dezelfde logica. Dit leidt tot bugs. Je kunt later per ongeluk een eigenschap wijzigen en je applicatie laten crashen.

Gebruik in plaats daarvan deze twee patronen om schone code te schrijven.

  1. Factory Functions

Denk aan een echte fabriek. Grondstoffen gaan erin. Een eindproduct komt eruit.

Een factory function neemt parameters aan en geeft een nieuw object terug.

Example:

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

De voordelen:

  1. Constructor Functions

Constructor functions maken ook objecten aan. Ze maken gebruik van het "new"-trefwoord en het "this"-trefwoord. Volgens de conventie begin je deze met een hoofdletter.

Example:

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

Wanneer je "new" gebruikt, doet JavaScript het werk voor je:

Je hebt geen "return"-statement nodig.

Je code schalen

Je kunt deze patronen combineren met arrays om grote hoeveelheden data te verwerken. In plaats van elke naam te typen, kun je een map-functie gebruiken.

Example:

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

Nu heb je een lijst met objecten die klaar zijn voor gebruik.

Samenvatting:

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