Nov
25
2015
By abernal
These are so called functions on the fly or anonymous functions, they are loaded at execution time
Syntax
var diffOfSquares = function (a, b) {
return a*a - b*b;
}Executing a function expression
Sample
// The Function expression
var sayHello = function () {
console.log("Hello There buddy!");
}; // Pay attention with the semicolon
// A call to a normal function
writeSomething(sayHello);
// The normal function declaration
function writeSomething(message){
...
message(); // This will execute the anonymous function
console.log(message); // This will print the function declaration
...
}Functions as paramenters
Sample
Functions can also be passed like parameters, the next sample ilustrates this aspect of functions
var function1 = function (input) {
return (3 * input - 8);
};
var function2 = function (input) {
return ((input + 2)*(input + 2)*(input + 2));
};
var function3 = function (input) {
return (input*input - 9);
};
var function4 = function (input) {
return (input % 4);
};
var puzzlers = [function1, function2, function3, function4];Functions can be returned from a function
Sample
var parkRides = [["Name 1", 40], ["Name 2",50], ["Name 3", 60]];
var fastPassQueue = ["Cedar Coaster", "Pines Plunge", "Birch Bumpers", "Pines Plunge"];
var wantsRide = "Cedar Coaster";
var ticket = buildTicket (parkRides, fastPassQueue, wantsRide);
// Alternative call to buildTicket
// buildTicket (parkRides, fastPassQueue, wantsRide)();
ticket();
function buildTicket (allRides, passRides, pick ) {
if (passRides[0] == pick ){
var pass = passRides.shift();
return function () { alert("Hurry! You´ve got a Fast Pass to " + pass + "!"); };
} else {
for(var i = 0; i < allRides.length; i++){
if(allRides[i][0] == pick){
return function () {
alert("Hello There, A ticket is printing for :"+pick+"!\n"+
"Your wait is about "+allRides[i][1]+" minutes");
};
}
}
}
}