Операции с обекти във функция в JavaScript

Нека добавим към обекта функция, която ще изпълнява някаква полезна операция. Например, ще намира сумата от елементите на обекта.

Да предположим, че имаме обект:

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

Нека създадем символ:

javascriptlet sym = Symbol();

Нека запишем функцията:

javascriptobj[sym] = function() {
  
};

Във функцията, свързана с обекта, this ще сочи към самия обект:

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

Нека намерим с помощта на нашата функция сумата от елементите на обекта:

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

Нека извикаме нашата функция, за да получим сумата от елементите на обекта:

javascriptlet sum = obj[sym]();
console.log(sum); // ще изведе 6
Задание 1

Даден е масив:

javascriptlet arr = [1, 2, 3];

По описания в урока начин добавете към масива функция, която ще връща сумата от елементите на масива.

Задание 2

Извикайте създадената функция и се уверете, че тя правилно намира сумата.

Задание 3

Добавете към масива няколко елемента с помощта на метода push. Уверете се, че функцията ще намира сумата, като взема предвид новите елементи.