edubun
Nederlands

Objecten

Een object groepeert samenhangende waarden onder namen. In { name: "Coco", age: 3 } geeft pet.name "Coco" en pet.age geeft 3.

Waarden met labels

Een array is handig voor een lijst soortgelijke dingen op volgorde. Veel dingen in de wereld kun je beter beschrijven met benoemde feiten: een huisdier heeft een naam, een soort en een leeftijd; een product heeft een titel, een prijs en een voorraad. Een object slaat precies dat op. Het is een verzameling eigenschappen en elke eigenschap bestaat uit een sleutel (het label) gekoppeld aan een waarde.

const pet = {
  name: "Coco",
  kind: "cat",
  age: 3,
};
console.log(pet.name);        // Coco
console.log(pet["kind"]);     // cat
console.log(pet.age + 1);     // 4

Je schrijft een object tussen accolades, met elke eigenschap als key: value en komma's ertussen. Een komma na de laatste eigenschap is toegestaan. Om een eigenschap te lezen, schrijf je het object, een punt en de sleutel: pet.name. De andere vorm gebruikt vierkante haken en een string, pet["kind"]. Haken zijn nodig als de sleutel in een variabele staat, zoals pet[field], of een spatie bevat. Een niet-bestaande sleutel lezen geeft undefined.

Eigenschappen veranderen en toevoegen

Ken een waarde aan een eigenschap toe om die te veranderen en aan een nieuwe sleutel om er een toe te voegen. Net als bij arrays werkt dit ook als het object met const is gedeclareerd, omdat de variabele nog naar hetzelfde object verwijst.

const player = { name: "Sam", score: 0 };
player.score += 10;
player.level = 2;
console.log(`${player.name} ${player.score} ${player.level}`);   // Sam 10 2
delete player.level;
console.log(player.level);   // undefined

Lijsten met objecten

Arrays en objecten passen goed bij elkaar. De meeste programma's bewaren gegevensrijen als een array van objecten: een winkelmandje, een klassenlijst, een reeks zoekresultaten. Je loopt met een lus door de array en leest van elk object de benodigde eigenschappen.

const basket = [
  { item: "pen", price: 2 },
  { item: "book", price: 12 },
  { item: "bag", price: 25 },
];
let total = 0;
for (const line of basket) {
  total += line.price;
}
console.log("Total:", total);   // Total: 39

Waarden binnen een object kunnen alles zijn, ook arrays en andere objecten. Met const user = { name: "Ana", tags: ["admin", "editor"] }; kun je user.tags[0] schrijven om bij "admin" te komen. Lees zulke ketens van links naar rechts: begin bij user, ga naar de eigenschap tags en neem dan index 0.

Methoden en de sleutels van een object

Een eigenschap met een functie als waarde heet een methode. Je hebt al die tijd methoden aangeroepen: console.log is de methode log van het object console en Math.round is de methode round van Math. Binnen een methode verwijst het sleutelwoord this naar het object waarop de methode is aangeroepen, zodat een methode de eigenschappen van haar eigen object kan lezen. Ten slotte geeft Object.keys(pet) een array van sleutels, hier ["name", "kind", "age"], handig om elke eigenschap met een lus langs te gaan.

const counter = {
  count: 0,
  add() {
    this.count++;
  },
};
counter.add();
counter.add();
console.log(counter.count);   // 2

Uitgewerkt voorbeeld. Een boekrecord { title: "Notes", pages: 120, read: 45 } kan voortgang tonen met Math.round(book.read / book.pages * 100), wat 38 is, dus 38 procent. De waarden pages en read noemen maakt de formule leesbaar op een manier die b[1] / b[0] nooit zou zijn.

Array of object?

Met een snelle test bepaal je welke je gebruikt. Als de waarden hetzelfde soort dingen zijn en de volgorde ertoe doet, zoals klassenscores of receptstappen, gebruik dan een array en benader ze op positie. Als de waarden verschillende feiten over één ding zijn, zoals naam, prijs en voorraad van een product, gebruik dan een object en benader ze op naam. De meeste echte gegevens mengen beide: een array van producten, waarbij elk product een object is. Als je een object in het oefenvak afdrukt, zie je een compacte vorm zoals {"name":"Coco","age":3}; afzonderlijke eigenschappen lezen geeft overzichtelijkere uitvoer.

objectEen groep benoemde waarden in { }
eigenschapEén sleutel: waarde-paar in een object
sleutelDe naam van een eigenschap, zoals age
puntnotatiepet.name
haakjesnotatiepet["name"] of pet[field]
methodeEen eigenschap met een functie als waarde
thisBinnen een methode: het object waarop die is aangeroepen
Object.keysEen array met de sleutels van een object
  1. Wat drukt deze code af?
    const car = { brand: "Kia", year: 2020 };
    console.log(car.year);
  2. Wat drukt deze code af?
    const car = { brand: "Kia", year: 2020 };
    console.log(car["brand"]);
  3. Wat drukt deze code af?
    const car = { brand: "Kia" };
    console.log(typeof car.color);
    • undefined
    • Een fout
    • string
  4. Wat drukt deze code af?
    const box = { w: 4, h: 5 };
    box.w = 6;
    console.log(box.w * box.h);
  5. Wat drukt deze code af?
    const p = { name: "Lee" };
    p.age = 40;
    console.log(Object.keys(p).length);
  6. Wat drukt deze code af?
    const field = "score";
    const r = { score: 88 };
    console.log(r[field]);
  7. Wat drukt deze code af?
    const u = { name: "Ana", tags: ["admin", "editor"] };
    console.log(u.tags[1]);
  8. Wat drukt deze code af?
    const items = [{ n: 2 }, { n: 5 }, { n: 1 }];
    let t = 0;
    for (const it of items) {
      t += it.n;
    }
    console.log(t);
  9. Wat drukt deze code af?
    const c = {
      count: 5,
      add() {
        this.count++;
      },
    };
    c.add();
    console.log(c.count);
  10. Welke regel voegt aan het object item een eigenschap price met waarde 9 toe?
    • item.price = 9;
    • item = price: 9;
    • item.push(price, 9);
Belangrijkste punten
  • Objecten bevatten eigenschappen sleutel: waarde in { }.
  • Lees met obj.key of obj["key"]; gebruik haken voor sleutels in variabelen.
  • Ken toe om een eigenschap te veranderen of toe te voegen; ontbrekende sleutels geven undefined.
  • Arrays van objecten bevatten records; loop erdoor en lees elke eigenschap.
  • Een methode is een functie-eigenschap; this is het bijbehorende object.
Bronnen van deze cursus (2)
  • MDN Web Docs, JavaScript Guide (developer.mozilla.org/en-US/docs/Web/JavaScript/Guide, chapters Introduction, Grammar and types, Control flow, Loops and iteration, Functions, Expressions and operators, Numbers and strings, Indexed collections, Working with objects; checked 2026-10-17)
  • Ecma International, ECMA-262 ECMAScript 2026 Language Specification, 17th edition, June 2026 (tc39.es/ecma262 and ecma-international.org/publications-and-standards/standards/ecma-262, checked 2026-10-17).

Geraadpleegd: 2026-10-17