Introduction
Dans ce laboratoire, nous allons explorer la manière d'utiliser JavaScript pour obtenir un tableau des noms de propriétés de fonction à partir des propriétés énumérables propres à un objet. Nous allons apprendre à itérer sur les propriétés d'un objet et à utiliser Object.keys() et Object.getPrototypeOf() pour inclure les propriétés héritées si nécessaire. Nous allons également filtrer les propriétés non fonctionnelles à l'aide de Array.prototype.filter().
Comment obtenir les noms de propriétés de fonction à partir d'un objet en JavaScript
Pour obtenir un tableau des noms de propriétés de fonction à partir d'un objet, utilisez la fonction functions fournie ci-dessous. Cette fonction peut également inclure facultativement les propriétés héritées.
Voici comment utiliser la fonction functions :
- Ouvrez le Terminal/SSH et tapez
nodepour commencer à pratiquer la programmation. - Utilisez
Object.keys()pour itérer sur les propriétés propres à l'objet. - Si vous voulez inclure les propriétés héritées, définissez l'argument
inheritedsurtrueet utilisezObject.getPrototypeOf()pour obtenir les propriétés héritées de l'objet. - Utilisez
Array.prototype.filter()pour ne conserver que les propriétés qui sont des fonctions. - Omettez le second argument,
inherited, pour ne pas inclure les propriétés héritées par défaut.
const functions = (obj, inherited = false) =>
(inherited
? [...Object.keys(obj), ...Object.keys(Object.getPrototypeOf(obj))]
: Object.keys(obj)
).filter((key) => typeof obj[key] === "function");
Voici un exemple d'utilisation de la fonction functions :
function Foo() {
this.a = () => 1;
this.b = () => 2;
}
Foo.prototype.c = () => 3;
functions(new Foo()); // ['a', 'b']
functions(new Foo(), true); // ['a', 'b', 'c']
Résumé
Félicitations ! Vous avez terminé le laboratoire sur les noms de propriétés de fonction. Vous pouvez pratiquer d'autres laboratoires sur LabEx pour améliorer vos compétences.