Objekty jako argumenty
Funkce a objekty se k sobě hodí. Funkce může dostat jako argument celý objekt a přečíst si z něj vlastnosti, které potřebuje:
function popisZvirete(zvire) {
return `${zvire.jmeno} má ${zvire.vek} roky.`;
}
const rex = { jmeno: "Rex", druh: "pes", vek: 3 };
console.log(popisZvirete(rex));
console.log(popisZvirete({ jmeno: "Kiwi", druh: "papoušek", vek: 4 }));Rex má 3 roky.
Kiwi má 4 roky.Parametr zvire je název pro objekt, který funkci při volání předáte: při prvním volání je to objekt Rexe, při druhém Kiwiho. Místo tří argumentů pro jméno, druh a věk předáte jeden a funkce si z něj vezme, co potřebuje.
Funkce může dostat i pole objektů. Tahle vrátí průměrný věk zvířat v poli:
function prumernyVek(zvirata) {
let soucet = 0;
for (const zvire of zvirata) {
soucet += zvire.vek;
}
return soucet / zvirata.length;
}
const zvirata = [
{ jmeno: "Rex", druh: "pes", vek: 3 },
{ jmeno: "Micka", druh: "kočka", vek: 2 },
{ jmeno: "Kiwi", druh: "papoušek", vek: 4 }
];
console.log(prumernyVek(zvirata));3Funkci napíšete jednou a můžete ji použít pro jakékoli pole zvířat: pro tento obchod, pro jiný nebo pro zvířata, která přibudou zítra.
Mimochodem, objekt s funkcemi používáte už od první lekce. console je objekt a log je jedna z jeho vlastností. Její hodnotou je funkce, a proto ji voláte se závorkami: console.log(). Funkci uložené v objektu se říká metoda. Proto se také push() a includes() říká metody pole. Funkci můžete uložit i do svého objektu:
const pes = {
jmeno: "Rex",
stekej: () => console.log("Haf!")
};
pes.stekej();Haf!Jak psát:
Pokyny
Doplňte funkci popisPolozky: má vrátit (ne vypsat) název a cenu položky, kterou dostane, jako text, třeba "Míček: 60". Cyklus na konci pak vypíše všechny čtyři položky: Granule pro psa: 250, Míček: 60 a tak dále.
Doplňte funkci celkovaCena: má vrátit součet cen všech položek v poli polozky. Poslední dva řádky pak budou Celkem: 535 a Malý košík: 105.
Začněte programovat zdarma
7/9