Амалиётҳо бо объектҳо дар функсия дар JavaScript

Биёед ба объект функсияеро илова кунем, ки як амалиёти муфидро иҷро мекунад. Масалан, ҷамъи унсурҳои объектро пайдо мекунад.

Фарз мекунем, ки мо объект дорем:

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

Як рамз (Symbol) эҷод мекунем:

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 ба массив чанд унсури дигар илова кунед. Боварӣ ҳосил кунед, ки функсия ҷамъро бо назардошти унсурҳои нав пайдо мекунад.