Globaalit symbolit JavaScriptissä

Menetelmällä Symbol.for voidaan luoda nimellisiä symboleja. Nämä symbolit tallennetaan globaaliin symbolirekisteriin ja niihin pääsee käsiksi mistä tahansa koodin osasta.

Katsotaan kuinka se toimii. Luodaan symboli yhdessä funktiossa:

javascriptfunction func1() {
  let sym = Symbol.for('test');
  return sym;
}

Nyt toisessa funktiossa saamme käyttöoikeuden tähän symboliin sen nimen perusteella:

javascriptfunction func2() {
  let sym = Symbol.for('test');
  return sym;
}

Tarkistamme, että molemmat funktiot sisältävät saman symbolin. Kutsukaamme funktioitamme:

javascriptlet sym1 = func1();
let sym2 = func2();

Verrataan symboleja:

javascriptconsole.log(sym1 === sym2); // true
Задание 1

Olkoon sinulla useita olioita. Lisää jokaiselle niistä avain symbolin muodossa nimellä 'sum'. Tee tähän avaimeen funktio, joka palauttaa olion alkioiden summan.