Funksie in 'n Voorwerp in JavaScript
Met behulp van simbole kan ons funksies by voorwerpe voeg en hierdie funksies sal nie deelneem aan iterasie nie. Kom ons probeer. Laat ons 'n voorwerp hê:
let obj = {a: 1, b: 2, c: 3};
Skep 'n simbool:
let sym = Symbol();
Skryf 'n funksie na die voorwerp met 'n sleutel in die vorm van ons simbool:
obj[sym] = function() {
console.log('!!!');
};
Tydens iterasie van die voorwerp sal ons funksie nie herhaal word nie:
for (let key in obj) {
console.log(obj[key]); // 1, 2, 3
}
Kry ons funksie deur ons simbool (dieselfde veranderlike) as sleutel deur te gee:
let func = obj[sym];
func();
Die kode kan verkort word:
obj[sym]();
Voeg by die voorwerp 'n funksie wat die huidige tyd sal vertoon. Roep hierdie funksie aan.