Determine a function's name.
Usage
var functionName = require( '@stdlib/utils/function-name' );
functionName( fcn )
Returns the name of a function.
var v = functionName( Math.sqrt ); // returns 'sqrt'
If provided an anonymous function, the function returns an empty string or the string "anonymous".
var v = functionName( function () {} ); // returns '' || 'anonymous'
If provided a value which is not a function, the function throws a TypeError.
try { functionName( 'beep' ); // throws error... } catch ( err ) { console.error( err ); }
Notes
-
For more information regarding the naming of anonymous functions, see
- Function Names in ES6
- Webkit bug 7726
- MDN
Examples
var Float64Array = require( '@stdlib/array/float64' ); var Buffer = require( '@stdlib/buffer/ctor' ); var Number = require( '@stdlib/number/ctor' ); var Boolean = require( '@stdlib/boolean/ctor' ); var Function = require( '@stdlib/function/ctor' ); var functionName = require( '@stdlib/utils/function-name' ); var v = functionName( Math.sqrt ); // returns 'sqrt' v = functionName( Float64Array ); // returns 'Float64Array' v = functionName( Buffer ); // returns 'Buffer' v = functionName( Date ); // returns 'Date' v = functionName( String ); // returns 'String' v = functionName( Boolean ); // returns 'Boolean' v = functionName( Function ); // returns 'Function' v = functionName( Number ); // returns 'Number' v = functionName( function foo() {} ); // returns 'foo' v = functionName( function () {} ); // returns '' || 'anonymous'
See Also
@stdlib/utils/constructor-name: determine the name of a value's constructor.