Имена свойств функций

JavaScriptJavaScriptBeginner
Практиковаться сейчас

This tutorial is from open-source community. Access the source code

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии мы изучим, как использовать JavaScript для получения массива имен свойств функций из собственных перечисляемых свойств объекта. Мы узнаем, как перебирать свойства объекта и использовать Object.keys() и Object.getPrototypeOf(), чтобы включить унаследованные свойства, если необходимо. Мы также будем фильтровать нефункционные свойства с использованием Array.prototype.filter().

Как получить имена свойств функций из объекта в JavaScript

Чтобы получить массив имен свойств функций из объекта, используйте функцию functions, представленную ниже. Эта функция также может необязательно включать унаследованные свойства.

Вот, как использовать функцию functions:

  1. Откройте Терминал/SSH и введите node, чтобы начать практиковаться в написании кода.
  2. Используйте Object.keys(), чтобы перебрать собственные свойства объекта.
  3. Если вы хотите включить унаследованные свойства, установите аргумент inherited в true и используйте Object.getPrototypeOf(), чтобы получить унаследованные свойства объекта.
  4. Используйте Array.prototype.filter(), чтобы оставить только те свойства, которые являются функциями.
  5. Пропустите второй аргумент, inherited, чтобы по умолчанию не включать унаследованные свойства.
const functions = (obj, inherited = false) =>
  (inherited
    ? [...Object.keys(obj), ...Object.keys(Object.getPrototypeOf(obj))]
    : Object.keys(obj)
  ).filter((key) => typeof obj[key] === "function");

Вот пример использования функции 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']

Резюме

Поздравляем! Вы завершили практическое занятие по именам свойств функций. Вы можете выполнить больше практических занятий в LabEx, чтобы улучшить свои навыки.