Ֆունկցիա օբյեկտում JavaScript-ում

Օգտագործելով սիմվոլները՝ օբյեկտներին կարելի է ավելացնել ֆունկցիաներ, և այդ ֆունկցիաները չեն մասնակցի փոխադրմանը: Եկեք փորձենք: Ենթադրենք ունենք օբյեկտ.

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

Ստեղծենք սիմվոլ.

javascriptlet sym = Symbol();

Օբյեկտում գրենք ֆունկցիա մեր սիմվոլի տեսքով բանալիով.

javascriptobj[sym] = function() {
  console.log('!!!');
};

Օբյեկտը փոխադրելիս մեր ֆունկցիան չի փոխադրվի.

javascriptfor (let key in obj) {
  console.log(obj[key]); // 1, 2, 3
}

Ստացենք մեր ֆունկցիան՝ որպես բանալի փոխանցելով մեր սիմվոլը (նույն փոփոխականը).

javascriptlet func = obj[sym];
func();

Կարելի է կրճատել կոդը.

javascriptobj[sym]();
Задание 1

Օբյեկտին ավելացրեք ֆունկցիա, որն արտածում է ընթացիկ ժամանակը: Կանչեք այդ ֆունկցիան: