Declarative functions are the traditional function forms, and should be used whenever possible because theyâ??re parsed just once (more efficient) and easy to spot in a page (readable). In addition, all browsers that support JavaScript support this type of function.
Anonymous functions have no name, are assigned a variable or passed as a function parameter, and are parsed each time theyâ??re accessed. Theyâ??re useful when some circumstance, such as user input, determines their behavior.
Literal functions are useful for defining methods for objects, or to pass as a parameter. Theyâ??re also useful in recursion, especially because if given a name, that name is available only internally in the code.
If an object, such as an array, is passed as a function parameter, modifications to the array in the function are reflected outside the function. A function can also return a value, and any modifications to global variables are also reflected outside the function scope.
Rather than define a parameter list, access the arguments array. With this, the number of arguments passed into the function can be easily altered:
function test(â??â??) { for (var i = 0; i < arguments.length; i++) { alert(arguments[i]); } } test(1,2,3); test(1,2,3,4);
The this property not only sets but accesses properties within a function.
An anonymous function suits these requirements:
function invokeFunction(dataObject,functionToCall) { functionToCall(dataObject); } var funcCall = new Function('x','alert(x)'); invokeFunction('hello', funcCall);