Introdução
Neste laboratório, exploraremos como usar JavaScript para obter um array com os nomes das propriedades de função de um objeto a partir de suas próprias propriedades enumeráveis. Aprenderemos como iterar sobre as propriedades de um objeto e usar Object.keys() e Object.getPrototypeOf() para incluir propriedades herdadas, se necessário. Também filtraremos as propriedades que não são funções usando Array.prototype.filter().
Como Obter os Nomes das Propriedades de Função de um Objeto em JavaScript
Para obter um array com os nomes das propriedades de função de um objeto, use a função functions fornecida abaixo. Esta função também pode, opcionalmente, incluir propriedades herdadas.
Veja como usar a função functions:
- Abra o Terminal/SSH e digite
nodepara começar a praticar a codificação. - Use
Object.keys()para iterar sobre as próprias propriedades do objeto. - Se você quiser incluir propriedades herdadas, defina o argumento
inheritedcomotruee useObject.getPrototypeOf()para obter as propriedades herdadas do objeto. - Use
Array.prototype.filter()para manter apenas as propriedades que são funções. - Omita o segundo argumento,
inherited, para não incluir propriedades herdadas por padrão.
const functions = (obj, inherited = false) =>
(inherited
? [...Object.keys(obj), ...Object.keys(Object.getPrototypeOf(obj))]
: Object.keys(obj)
).filter((key) => typeof obj[key] === "function");
Aqui está um exemplo de uso da função 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']
Resumo
Parabéns! Você concluiu o laboratório de Nomes de Propriedades de Função. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.