Javascript - Functions as Values

Introduction

Javascript function names are variables, functions can be used any place value can be used.

You can pass a function into another function as an argument and return a function from another function.

Consider the following function:

function callSomeFunction(someFunction, someArgument){
    return someFunction(someArgument);
}

This function accepts two arguments. The first argument should be a function, and the second argument should be a value to pass to that function.

Any function can then be passed in as follows:

function add10(num){
    return num + 10;
}

var result1 = callSomeFunction(add10, 10);
console.log(result1);   //20

function getGreeting(name){
    return "Hello, " + name;
}

var result2 = callSomeFunction(getGreeting, "First");
console.log(result2);   //"Hello, First"

The callSomeFunction() function is generic.