Introducción
En este laboratorio, exploraremos cómo usar JavaScript para obtener una matriz de nombres de propiedades de función a partir de las propiedades enumerables propias de un objeto. Aprenderemos cómo iterar sobre las propiedades de un objeto y usar Object.keys() y Object.getPrototypeOf() para incluir propiedades heredadas si es necesario. También filtraremos las propiedades no funcionales usando Array.prototype.filter().
Cómo obtener nombres de propiedades de función a partir de un objeto en JavaScript
Para obtener una matriz de nombres de propiedades de función a partir de un objeto, utiliza la función functions proporcionada a continuación. Esta función también puede incluir, opcionalmente, propiedades heredadas.
Aquí está cómo utilizar la función functions:
- Abra la Terminal/SSH y escriba
nodepara comenzar a practicar la codificación. - Utilice
Object.keys()para iterar sobre las propiedades propias del objeto. - Si desea incluir propiedades heredadas, establezca el argumento
inheritedentruey utiliceObject.getPrototypeOf()para obtener las propiedades heredadas del objeto. - Utilice
Array.prototype.filter()para conservar solo aquellas propiedades que son funciones. - Omita el segundo argumento,
inherited, para no incluir propiedades heredadas por defecto.
const functions = (obj, inherited = false) =>
(inherited
? [...Object.keys(obj), ...Object.keys(Object.getPrototypeOf(obj))]
: Object.keys(obj)
).filter((key) => typeof obj[key] === "function");
Aquí está un ejemplo de uso de la función 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']
Resumen
¡Felicidades! Has completado el laboratorio de Nombres de Propiedades de Función. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.