Object.keys(obj)
to iterate over the object's own properties.inherited
is true
, use Object.getPrototypeOf(obj)
to also get the object's inherited properties.Array.prototype.filter()
to keep only those properties that are functions.inherited
, to not include inherited properties by default.const functions = (obj, inherited = false) => (inherited ? [...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']
Subscribe to get resources directly to your inbox. You won't receive any spam! ✌️