Введение
В этом практическом занятии мы изучим, как использовать JavaScript для получения массива имен свойств функций из собственных перечисляемых свойств объекта. Мы узнаем, как перебирать свойства объекта и использовать Object.keys() и Object.getPrototypeOf(), чтобы включить унаследованные свойства, если необходимо. Мы также будем фильтровать нефункционные свойства с использованием Array.prototype.filter().
Как получить имена свойств функций из объекта в JavaScript
Чтобы получить массив имен свойств функций из объекта, используйте функцию functions, представленную ниже. Эта функция также может необязательно включать унаследованные свойства.
Вот, как использовать функцию functions:
- Откройте Терминал/SSH и введите
node, чтобы начать практиковаться в написании кода. - Используйте
Object.keys(), чтобы перебрать собственные свойства объекта. - Если вы хотите включить унаследованные свойства, установите аргумент
inheritedвtrueи используйтеObject.getPrototypeOf(), чтобы получить унаследованные свойства объекта. - Используйте
Array.prototype.filter(), чтобы оставить только те свойства, которые являются функциями. - Пропустите второй аргумент,
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, чтобы улучшить свои навыки.