JavaScript, Object, Function

Gets an array of function property names from own (and optionally inherited) enumerable properties of an object.

  • Use Object.keys(obj) to iterate over the object's own properties.
  • If inherited is true, use Object.getPrototypeOf(obj) to also get the object's inherited properties.
  • Use Array.prototype.filter() to keep only those properties that are functions.
  • Omit the second argument, inherited, to not include inherited properties by default.
const functions = (obj, inherited = false) =>
    ? [...Object.keys(obj), ...Object.keys(Object.getPrototypeOf(obj))]
    : Object.keys(obj)
  ).filter(key => typeof obj[key] === 'function');
function Foo() {
  this.a = () => 1;
  this.b = () => 2;
Foo.prototype.c = () => 3;
functions(new Foo()); // ['a', 'b']
functions(new Foo(), true); // ['a', 'b', 'c']

Recommended snippets

  • get

    JavaScript, Object

    Retrieves a set of properties indicated by the given selectors from an object.

  • pickBy

    JavaScript, Object

    Creates an object composed of the properties the given function returns truthy for.

  • deepGet

    JavaScript, Object

    Gets the target value in a nested JSON object, based on the keys array.