Operace s objekty ve funkcích v JavaScriptu

Přidejme do objektu funkci, která bude provádět určitou užitečnou operaci. Například bude hledat součet prvků objektu.

Předpokládejme, že máme objekt:

javascriptlet obj = {a: 1, b: 2, c: 3};

Vytvořme symbol:

javascriptlet sym = Symbol();

Zapišme funkci:

javascriptobj[sym] = function() {
  
};

Ve funkci připojené k objektu this bude odkazovat na samotný objekt:

javascriptobj[sym] = function() {
  console.log(this); // {a: 1, b: 2, c: 3}
};

Najděme pomocí naší funkce součet prvků objektu:

javascriptobj[sym] = function() {
  let sum = 0;
  
  for (let key in this) {
    sum += this[key];
  }
  
  return sum;
};

Zavolejme naši funkci a získejme součet prvků objektu:

javascriptlet sum = obj[sym]();
console.log(sum); // vypše 6
Задание 1

Dané pole:

javascriptlet arr = [1, 2, 3];

Popisovaným způsobem z lekce přidejte do pole funkci, která bude vracet součet prvků pole.

Задание 2

Zavolejte vytvořenou funkci a přesvědčte se, že správně najde součet.

Задание 3

Přidejte do pole několik prvků pomocí metody push. Přesvědčte se, že funkce bude nacházet součet s ohledem na nové prvky.