Global Symbols дар JavaScript
Бо воситаи усули Symbol.for
метавон рамзҳои номдор эҷод кард.
Ин рамзҳо дар
реестри глобалии рамзҳо
нигоҳ дошта мешаванд ва ба онҳо аз
ҳар ҷои коду дастрасӣ пайдо кардан мумкин аст.
Биёед бубинем, ки ин чӣ гуна кор мекунад. Дар як функсия рамзеро эҷод мекунем:
function func1() {
let sym = Symbol.for('test');
return sym;
}
Ҳоло дар функсияи дигар ба ин рамз тавассути номи он дастрасӣ пайдо мекунем:
function func2() {
let sym = Symbol.for('test');
return sym;
}
Санҷем, ки ҳарду функсия ҳамон як рамзеро дар бар мегиранд. Функсияҳои худро фаро мехонем:
let sym1 = func1();
let sym2 = func2();
Рамзҳоро муқоиса мекунем:
console.log(sym1 === sym2); // true
Фарз кунем, ки шумо чанд объект доред.
Ба ҳар яке аз онҳо як калид ба шакли
рамз бо номи 'sum' илова кунед.
Дар ин калид функсияеро созед,
ки ҷами элементҳои объектро
бозмегардонад.