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 the Function constructor is less efficient than declaring a function via a function expression or a function statement.
  • The Function constructor can be invoked without the new operator (using new and not using new both return a new Function 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
Did you find this page helpful?