Funktio oliossa JavaScriptissä
Symboleiden avulla olioihin voi lisätä funktioita, eivätkä nämä funktiot osallistu läpikäyntiin. Kokeillaan. Olkoon meillä olio:
let obj = {a: 1, b: 2, c: 3};
Luodaan symboli:
let sym = Symbol();
Kirjoitetaan olioon funktio avaimena käyttäen symboliamme:
obj[sym] = function() {
console.log('!!!');
};
Oliota läpikäydessä funktiomme ei tule läpikäydyksi:
for (let key in obj) {
console.log(obj[key]); // 1, 2, 3
}
Saadaan funktiomme avaimena antamalla symbolimme (sama muuttuja):
let func = obj[sym];
func();
Koodia voi lyhentää:
obj[sym]();
Lisää olioon funktio, joka tulostaa nykyisen ajan. Kutsu tämä funktio.