es-toolkit
Version:
A state-of-the-art, high-performance JavaScript utility library with a small bundle size and strong type annotations.
30 lines (29 loc) • 749 B
JavaScript
const require_keys = require("./keys.js");
//#region src/compat/object/functions.ts
/**
* Creates an array of property names from an object where the property values are functions.
*
* Only checks for own properties with string keys. Inherited properties or
* properties with Symbol keys are not included.
*
* @param object The object to inspect.
* @returns An array of function property names.
*
* @example
*
* function Foo() {
* this.a = () => 'a'
* this.b = () => 'b'
* }
*
* Foo.prototype.c = () => 'c'
*
* functions(new Foo)
* // => ['a', 'b']
*/
function functions(object) {
if (object == null) return [];
return require_keys.keys(object).filter((key) => typeof object[key] === "function");
}
//#endregion
exports.functions = functions;