# The Function class in JavaScript

Most programmers know how to define and use a function in JavaScript. For example the following function displays an alert containing the string passed in as a parameter:


}
// Then you call it this way


How many developers, however, know that JavaScript functions are actually objects? Indeed, you can define the previous function using the Function class:


//...and you call it the same way


For those who didn’t figure it out, the syntax of the Function class is the following:


var functionName = new Function(arg_1, arg_2, ..., arg_n, functionBody);


where arg_i (i = 1,…,n) is the i-th argument and functionBody is (you guessed it) the body of the function. Although you can define functions using the Function class it’s best to avoid it because it’s less performant than the traditional way. Anyway, knowing that even a function is an object is useful because you know you can call on it the valueOf() and toString() methods shared by all objects. However, when called on a function, these two methods return the source code for the function as a string. You can also call the one property defined in ECMAScript which is length. This property returns the number of arguments as defined in the function. For example: