Fonction dans un objet en JavaScript
Avec les symboles, il est possible d'ajouter des fonctions aux objets et ces fonctions ne participeront pas à l'énumération. Essayons. Supposons que nous ayons un objet :
let obj = {a: 1, b: 2, c: 3};
Créeons un symbole :
let sym = Symbol();
Enregistrons dans l'objet une fonction avec une clé sous la forme de notre symbole :
obj[sym] = function() {
console.log('!!!');
};
Lors de l'énumération de l'objet, notre fonction ne sera pas énumérée :
for (let key in obj) {
console.log(obj[key]); // 1, 2, 3
}
Récupérons notre fonction, en passant notre symbole (la même variable) comme clé :
let func = obj[sym];
func();
On peut raccourcir le code :
obj[sym]();
Ajoutez à l'objet une fonction qui affichera l'heure actuelle. Appelez cette fonction.