Function
Function constructor.
Usage
var Function = require( '@stdlib/function/ctor' );
Function( [...argNames,] body )
Returns a new function object.
var greet = new Function( 'name', 'return "Hello, "+name+"!"' );
var v = greet( 'Jane' );
// returns 'Hello, Jane!'
Argument names must be strings corresponding to valid JavaScript parameters (i.e., a plain identifier, or, in environments supporting such parameters, a rest parameter or destructured parameter, optionally with a default).
Properties
Function.prototype.length
A number representing the number of arguments expected by the function.
var greet = new Function( 'name', 'return "Hello, "+name+"!"' );
var v = greet.length;
// returns 1
Function.prototype.name
Read-only property representing the name of the function.
function greet( name ) {
return 'Hello, '+name+'!';
}
var v = greet.name;
// returns 'greet'
// Functions created with the Function constructor are anonymous:
var fcn = new Function( 'name', 'return "Hello, "+name+"!"' );
v = fcn.name;
// returns 'anonymous'
Function.prototype.prototype
Read-only property representing the prototype of the function.
function greet( name ) {
return 'Hello, '+name+'!';
}
var proto = greet.prototype;
// returns {}
Methods
Function.prototype.apply( thisArg, args )
Calls the specified function with the given this
argument and arguments provided as an array-like object.
function add( x, y ) {
return this.initial + x + y;
}
var ctx = {
'initial': 10
};
var v = add.apply( ctx, [ 1, 2 ] );
// returns 13
Function.prototype.bind( thisArg[, arg1[, arg2[, ...]]] )
Returns a new function which invokes the original function with the given this
value and arguments.
function add( x, y ) {
return x + y;
}
var add1 = add.bind( null, 1 );
var v = add1( 2 );
// returns 3
Function.prototype.call( thisArg[, arg1[, arg2[, ...]]] )
Calls the specified function with the given this
value and arguments.
function add( x, y ) {
return this.initial + x + y;
}
var ctx = {
'initial': 10
};
var v = add.call( ctx, 1, 2 );
// returns 13
Function.prototype.toString()
Returns a string representing the function.
function add( x, y ) {
return x + y;
}
var v = add.toString();
// e.g., returns 'function add( x, y ) {\n return x + y;\n}'
Notes
- In pre-ES2015 environments, only plain identifiers (without defaults) are valid JavaScript parameters.
- Creating
Function
objects with theFunction
constructor is less efficient than declaring a function via a function expression or a function statement. - The
Function
constructor can be invoked without thenew
operator (usingnew
and not usingnew
both return a newFunction
object). - The
Function
constructor creates functions which execute in the global scope. Hence, created functions cannot access variables local to the scope in which functions were created.
Examples
var Function = require( '@stdlib/function/ctor' );
var add = new Function( 'x', 'y', 'return x + y' );
var v = add( 1, 2 );
// returns 3