Objekt on andmestruktuur, mis koondab seotud andmed võtme ja väärtuse paaridena (nt auto mark, mudel ja aasta).
Meetod on objekti sees asuv funktsioon, mis teostab toiminguid selle objekti andmetega.
this võtmesõna viitab objektile enesele, võimaldades meetodil pääseda ligi sama objekti omadustele.
Objekti loomine ja omadustele ligipääs
Konspekt
Objekti loomine ja omadustele ligipääs
let auto = {
mark: "Toyota",
mudel: "Corolla",
aasta: 2022,
varv: "punane",
lisavarustus: ["kliimaseade", "elektriaknad", "navigatsioonisüsteem"]
};
console.log(auto);
console.log(auto.mark); // Output: "Toyota"
console.log(auto.mudel); // Output: "Corolla"
Loodi objekt auto viie omadusega. Omadustele pääseb juurde punktisüntaksiga (nt auto.mark)

Meetodi loomine ja this kasutamine
let auto = {
mark: "Toyota",
mudel: "Corolla L",
aasta: 2022,
varv: "punane",
omadused: ["kliimaseade", "elektriaknad", "navigatsioonisüsteem"],
// lühendatud meetodi süntaks (ES6)
taisnimi() {
return this.mark + " " + this.mudel;
},
kuvaOmadused() {
this.omadused.forEach(omadus => console.log(omadus));
}
};
console.log(auto.taisnimi());
auto.kuvaOmadused();
Meetod taisnimi() kasutab this võtmesõna, et võtta objekti seest mark ja mudel. Meetod kuvaOmadused() käib forEach tsükliga läbi massiivis olevad lisavarustuse elemendid.

Objektide massiiv ja meetodid (push, unshift, splice, find, filter, sort)
let autod = [
{ mark: 'Toyota', mudel: 'Corolla', aasta: 2007 },
{ mark: 'Honda', mudel: 'Civic', aasta: 2012 },
{ mark: 'Tesla', mudel: 'Model 3', aasta: 2019 }
];
// Elemendi lisamine lõppu ja algusesse
autod.push({ mark: 'BMW', mudel: '320i', aasta: 2015 });
autod.unshift({ mark: 'Ford', mudel: 'Focus', aasta: 2020 });
console.log("Massiiv pärast lisamisi:", autod);
// Otsimine (leiab esimese vastava objekti)
let otsing = autod.find(auto => auto.aasta > 2018 && auto.mark === "Tesla");
console.log("Otsingu tulemus:", otsing);
// Filtreerimine (uue massiivi loomine)
let filterTulemus = autod.filter(auto => auto.aasta > 2018);
console.log("Filtreeritud autod (uudsemad kui 2018):", filterTulemus);
// Sorteerimine aasta järgi
autod.sort((a, b) => a.aasta - b.aasta);
console.log("Sorteeritud autod aasta järgi:", autod);

Massiivi meetodid nagu push(), filter(), find() ja sort() töötavad objektide massiiviga samamoodi nagu tavaliste andmetüüpidega.
Ülesande lahendus
// 1. Raamatu objekt
let raamat = {
pealkiri: "Tõde ja õigus I",
autor: "A. H. Tammsaare",
aasta: 1926,
// 1.1 Kirjelduse kuva meetod
kuvaKirjeldus() {
return `Raamat: "${this.pealkiri}", autor: ${this.autor}, aasta: ${this.aasta}`;
},
// 1.2 Aasta muutmise meetod
muudaAasta(uusAasta) {
this.aasta = uusAasta;
}
};
// Testime raamatu objekti
console.log(raamat.kuvaKirjeldus());
raamat.muudaAasta(1930);
console.log("Uus aasta:", raamat.kuvaKirjeldus());
// 2. Raamatukogu objekt
let raamatukogu = {
// 2.1 Omadus raamatud (objektide massiiv)
raamatud: [
{ pealkiri: "Tõde ja õigus I", autor: "A. H. Tammsaare", aasta: 1926 },
{ pealkiri: "Rehepapp", autor: "Andrus Kivirähk", aasta: 2000 },
{ pealkiri: "Kevade", autor: "Oskar Luts", aasta: 1912 },
{ pealkiri: "Serafima ja Bogdan", autor: "Vahur Afanasjev", aasta: 2017 }
],
// 2.2 Kuva kõik raamatud
kuvaKõik() {
this.raamatud.forEach(r => {
console.log(`Pealkiri: ${r.pealkiri}, Autor: ${r.autor}, Aasta: ${r.aasta}`);
});
},
// 2.3 Lisa uus raamat
lisaRaamat(pealkiri, autor, aasta) {
this.raamatud.push({ pealkiri, autor, aasta });
},
// 2.4 Koguarv
koguarv() {
return this.raamatud.length;
},
// 2.5 Raamatud pärast 2000. aastat
parast2000() {
return this.raamatud.filter(r => r.aasta > 2000).length;
},
// 2.6 Oma kohandatud meetod: otsi raamatut pealkirja järgi
// Selgitus: Meetod otsib "find" abil massiivist raamatut pealkirja alusel ja tagastab leitud objekti.
otsiPealkirjaga(otsitavPealkiri) {
return this.raamatud.find(r => r.pealkiri.toLowerCase() === otsitavPealkiri.toLowerCase());
}
};
// Tulemuste testimine konsoolis
raamatukogu.lisaRaamat("Kõrboja peremees", "A. H. Tammsaare", 1922);
console.log("--- Kõik raamatukogu raamatud ---");
raamatukogu.kuvaKõik();
console.log("Raamatuid kokku:", raamatukogu.koguarv());
console.log("Ilmunud pärast 2000. aastat:", raamatukogu.parast2000());
console.log("Otsing ('Rehepapp'):", raamatukogu.otsiPealkirjaga("Rehepapp"));

Link domeenile https://mihkelunt.eu
