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].

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

Registrací souhlasíte s provozními podmínkami a zásadami ochrany osobních údajů.

Nebo se registrujte pomocí:

8/9