1 JavaScript objecten

In JavaScript is een object een complexe datatype waarmee je gegevens in de vorm van key-value paren kunt opslaan. Een object kan verschillende soorten waarden bevatten, zoals strings, getallen, functies, arrays, en zelfs andere objecten.

1.1 JavaScript Objects basis

Objecten worden gedefinieerd met accolades {} en bevatten een set key-value paren.

const persoon = {
    naam: "John",
    leeftijd: 30,
    beroep: "Developer"
}

1.1.1 JavaScript Objects toegang

Je kunt toegang krijgen tot de waarden in een object door gebruik te maken van puntnotatie . of vierkante haken [].

const persoon = {
    naam: "John",
    leeftijd: 30,
    beroep: "Developer"
}
 
console.log(persoon.naam); // "John"
console.log(persoon["leeftijd"]); // 30

1.1.1 JavaScript Objects toevoegen, bijwerken en verwijderen

Je kunt properties toevoegen aan een bestaand object of de waarde van een bestaande property bijwerken.

const auto = {
  merk: "Tesla",
  model: "Model S"
};
 
// Toevoegen van een property
auto.kleur = "rood";
console.log(auto); // { merk: "Tesla", model: "Model S", kleur: "rood" }
 
// Bijwerken van een property
auto.model = "Model X";
console.log(auto); // { merk: "Tesla", model: "Model X", kleur: "rood" }
 
// Verwijderen van een property
deconste auto.kleur;
console.log(auto); // { merk: "Tesla", model: "Model X" }

1.1.2 JavaScript Objects methods

Methoden zijn functies die als eigenschappen in een object worden opgeslagen. Ze kunnen worden aangeroepen met de puntnotatie.

const calculator = {
    optellen: function(a, b) {
        return a + b;
    }
};
 
console.log(calculator.optellen(5, 3)); // 8
 
// ES6 syntax
 
const rekenmachine = {
    optellen(a, b) {
        return a + b;
    }
};
 
console.log(rekenmachine.optellen(5, 5)); // 10

1.1.3 Javascript Objects this keyword

Binnen methoden kun je het this keyword gebruiken om toegang te krijgen tot andere eigenschappen van hetzelfde object.

const persoon = {
    naam: "Bob",
    groeten() {
        console.log(`Hallo, mijn naam is ${this.naam}`);
    }
};
 
persoon.groeten()

1.1.4 Javascript Objects destructuring

Destructuring is een syntax waarmee je properties kunt uitpakken in afzonderlijke variabelen. Dit kan via de {}-notatie.

const gebruiker = {
    naam: "Student",
    leeftijd: 25,
    email: "student@windesheim.com"
};
 
const { naam, leeftijd, email } = gebruiker;
console.log(naam); // "Student"
console.log(leeftijd); // 25
console.log(email); // "student@windesheim.com"

Tijdens het destructuring kan je ook default waarden toewijzen.

const gebruiker = {
    naam: "Student",
    leeftijd: 25,
    email: "student@windesheim.com"
};
 
const { naam, leeftijd = 15, email, hobby = "voetbal" } = gebruiker;
console.log(naam); // "Student"
console.log(leeftijd); // 25
console.log(email); // "student@windesheim.com"
console.log(hobby); // "voetbal"

1.1.4 Javascript Objects for...in loop

De for...in-loop is een eenvoudige manier om over de eigenschappen van een object te itereren. Deze loop geeft de keys van het object terug.

const auto = {
    merk: "Ford",
    model: "Mustang",
    bouwjaar: 1969
};
 
for (const eigenschap in auto) {
    console.log(`${eigenschap}: ${auto[eigenschap]}`);
}

2.1 JavaScript Objects oefening

Hieronder enkele opdrachten met JavaScript objecten.

2.1.1 JavaScript Objects oefening basis

Maak een object boek met de eigenschappen titel, auteur, en jaar.

// Maak het object
 
console.log(boek);

2.1.1 JavaScript Objects oefening toevoegen en bewerken

Voeg de eigenschap genre toe aan het object boek en update de jaar eigenschap.

// Kopieer hier het object van hierboven
 
// Voeg genre toe en update jaar naar 2024
 
 
console.log(boek);

2.1.1 JavaScript Objects oefening methods en this

Voeg een methode beschrijving toe aan het object boek die de beschrijving van het boek retourneert.

// Kopieer hier het object van hierboven
 
 
console.log(boek); // Output: *titel* is geschreven door *auteur* in het jaar *jaar*.

2.1.1 JavaScript Objects oefening destructuring

Gebruik destructuring om de eigenschappen titel en auteur van het object boek te verkrijgen en print ze.

const boek = {
    titel: "De Hobbit",
    auteur: "J.R.R. Tolkien",
    jaar: 1951
};
 
// Destructureer de eigenschappen
 
// Print de eigenschappen
console.log(titel); // "De Hobbit"
console.log(auteur); // "J.R.R. Tolkien"

2.1.1 JavaScript Objects oefening loop

Gebruik een for...in loop om over de eigenschappen van het object land te itereren en print zowel de keys als de waarden.

const land = {
    naam: "Nederland",
    hoofdstad: "Amsterdam",
    bevolking: 17000000
};
 
// Gebruik de for...in loop
 
// Output:
// naam: Nederland
// hoofdstad: Amsterdam
// bevolking: 17000000