Funkce, které vytvářejí objekty
Funkce může objekt také vrátit. To se hodí, když vytváříte hodně objektů stejného tvaru: klíče napíšete jen jednou, ve funkci, a každý objekt, který funkce vytvoří, bude mít stejné vlastnosti.
function vytvorKnihu(nazev, autor) {
return {
nazev: nazev,
autor: autor,
dostupna: true
};
}
const kniha = vytvorKnihu("Matylda", "Roald Dahl");
console.log(kniha);{ nazev: "Matylda", autor: "Roald Dahl", dostupna: true }Zápis nazev: nazev může vypadat divně. Vlevo od dvojtečky je klíč, tedy název nové vlastnosti. Vpravo je její hodnota: parametr nazev, ve kterém je při tomto volání "Matylda". Nová kniha je vždy dostupná, takže dostupna je true u každé knihy, kterou funkce vytvoří.
V cizím kódu často uvidíte kratší zápis: { nazev, autor }. Když má mít vlastnost stejný název jako proměnná, ve které je její hodnota, stačí název napsat jednou. { nazev, autor } znamená přesně totéž co { nazev: nazev, autor: autor }. Můžete používat obojí.
Nový objekt můžete rovnou přidat do pole:
const knihovna = [];
knihovna.push(vytvorKnihu("Matylda", "Roald Dahl"));
knihovna.push(vytvorKnihu("Momo", "Michael Ende"));
console.log(knihovna);[{ nazev: "Matylda", autor: "Roald Dahl", dostupna: true }, { nazev: "Momo", autor: "Michael Ende", dostupna: true }]Typická chyba je zapomenout return. Funkce pak vrátí undefined a v knihovně by bylo [undefined, undefined].
Jak psát:
Pokyny
Doplňte funkci vytvorPolozku tak, aby vracela objekt s vlastnostmi nazev a cena. Program pak vypíše { nazev: "Zrní pro ptáky", cena: 90 }.
Pod to vytvořte konstantu kosik s prázdným polem. Pomocí push() a vytvorPolozku() do něj přidejte dvě položky: "Pelíšek pro kočku" za 400 a "Hračka pro kočku" za 35. Vypište kosik.
Začněte programovat zdarma
8/9