Combined functions and functionsIn
Makes more sense that way, following the example of flatten.
This commit is contained in:
@ -1,11 +1,15 @@
|
|||||||
### functions
|
### functions
|
||||||
|
|
||||||
Returns an array of function property names from own enumerable properties of object.
|
Returns 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, `Array.filter()` to keep only those that are functions.
|
Use `Object.keys(obj)` to iterate over the object's own properties.
|
||||||
|
If `inherited` is `true`, use `Object.get.PrototypeOf(obj)` to also get the object's inherited properties.
|
||||||
|
Use `Array.filter()` to keep only those properties that are functions.
|
||||||
|
Omit the second argument, `inherited`, to not include inherited properties by default.
|
||||||
|
|
||||||
```js
|
```js
|
||||||
const functions = obj => Object.keys(obj).filter(key => typeof obj[key] === 'function');
|
const functions = (obj, inherited = false) =>
|
||||||
|
(inherited ? [...Object.keys(obj), ...Object.keys(Object.getPrototypeOf(obj))] : Object.keys(obj)).filter(key => typeof obj[key] === 'function');
|
||||||
```
|
```
|
||||||
|
|
||||||
```js
|
```js
|
||||||
@ -13,5 +17,7 @@ function Foo() {
|
|||||||
this.a = () => 1;
|
this.a = () => 1;
|
||||||
this.b = () => 2;
|
this.b = () => 2;
|
||||||
}
|
}
|
||||||
|
Foo.prototype.c = () => 3;
|
||||||
functions(new Foo()); // ['a', 'b']
|
functions(new Foo()); // ['a', 'b']
|
||||||
|
functions(new Foo(), true); // ['a', 'b', 'c']
|
||||||
```
|
```
|
||||||
|
|||||||
@ -1,22 +0,0 @@
|
|||||||
### functionsIn
|
|
||||||
|
|
||||||
Returns an array of function property names from own and inherited enumerable properties of object.
|
|
||||||
|
|
||||||
Use `Object.keys(obj)` and `Object.get.PrototypeOf(obj)` to iterate over the object's own and inherited properties, `Array.filter()` to keep only those that are functions.
|
|
||||||
Use the spread operator (`...`) to combine all returned property names into one array.
|
|
||||||
|
|
||||||
```js
|
|
||||||
const functionsIn = obj =>
|
|
||||||
[...Object.keys(obj), ...Object.keys(Object.getPrototypeOf(obj))].filter(
|
|
||||||
key => typeof obj[key] === 'function'
|
|
||||||
);
|
|
||||||
```
|
|
||||||
|
|
||||||
```js
|
|
||||||
function Foo() {
|
|
||||||
this.a = () => 1;
|
|
||||||
this.b = () => 2;
|
|
||||||
}
|
|
||||||
Foo.prototype.c = () => 3;
|
|
||||||
functionsIn(new Foo()); // ['a', 'b', 'c']
|
|
||||||
```
|
|
||||||
@ -52,7 +52,6 @@ formatDuration:date,math,string,utility
|
|||||||
fromCamelCase:string
|
fromCamelCase:string
|
||||||
functionName:function,utility
|
functionName:function,utility
|
||||||
functions:object,function
|
functions:object,function
|
||||||
functionsIn:object,function
|
|
||||||
gcd:math,recursion
|
gcd:math,recursion
|
||||||
geometricProgression:math
|
geometricProgression:math
|
||||||
getDaysDiffBetweenDates:date
|
getDaysDiffBetweenDates:date
|
||||||
|
|||||||
Reference in New Issue
Block a user