Функсия дар объект дар JavaScript
Бо ёрии рамзҳо (Symbol) ба объектҳо функсияҳо илова кардан мумкин аст ва ин функсияҳо дар такрори объект иштирок намекунанд. Биёед кӯшиш кунем. Бигзор мо объекте дошта бошем:
let obj = {a: 1, b: 2, c: 3};
Як рамз (Symbol) эҷод мекунем:
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]();
Ба объект функсияеро илова кунед, ки вақти ҳозираро чоп кунад. Ин функсияро даъват кунед.