Ֆունկցիա օբյեկտում JavaScript-ում
Օգտագործելով սիմվոլները՝ օբյեկտներին կարելի է ավելացնել ֆունկցիաներ, և այդ ֆունկցիաները չեն մասնակցի փոխադրմանը: Եկեք փորձենք: Ենթադրենք ունենք օբյեկտ.
let obj = {a: 1, b: 2, c: 3};
Ստեղծենք սիմվոլ.
let sym = Symbol();
Օբյեկտում գրենք ֆունկցիա մեր սիմվոլի տեսքով բանալիով.
obj[sym] = function() {
console.log('!!!');
};
Օբյեկտը փոխադրելիս մեր ֆունկցիան չի փոխադրվի.
for (let key in obj) {
console.log(obj[key]); // 1, 2, 3
}
Ստացենք մեր ֆունկցիան՝ որպես բանալի փոխանցելով մեր սիմվոլը (նույն փոփոխականը).
let func = obj[sym];
func();
Կարելի է կրճատել կոդը.
obj[sym]();
Օբյեկտին ավելացրեք ֆունկցիա, որն արտածում է ընթացիկ ժամանակը: Կանչեք այդ ֆունկցիան: