In JavaScript, you can write functions that look like this:
function add(a,b) { return a+b; } function multiply(a,b) { return a*b; }
It’s the C way of writing functions, so it should look pretty familiar and comfortable. But it’s really just a short cut. There’s another way to write named functions.
add = function(a,b) { return a+b; } multiply = function(a,b) { return a*b; }
If we like, we can put functions into objects.
ops={add: function(a,b) {return a+b;}, multiply: function(a,b) {return a*b;}};
and now we can call the functions ops.add(a,b) and ops.multiply(a,b). Or, you can use another notation and call the functions with ops[“add”](a,b) and ops[“multiply”](a,b);
In a similar manner, because arrays can hold objects, we can do this:
ops=[function(a,b) {return a+b;}, function(a,b) {return a*b;}];
I’ve stripped out the names of the functions and now they look like the anonymous functions that are so common in JavaScript. In this case we still have a way to call the function–by indexing into the array. Normally we create anonymous functions on the fly and bind them to an event like like a button click and never call the function directly in our code.
To get to these almost-anonymous functions I’ve defined in the array, call ops[0](a,b) or ops[1](a,b).