Функции в javascript являются объектами и могут использоваться как объекты. Так, например, вы можете сделать это:
var a = function() {alert("done");};
a();
Это обычно используется в различных функциях, где вы должны передать некоторую логику внутрь. Например, функция «sort» для массивов ожидает, что функциональный объект будет передан внутрь, чтобы определить, как сортировать массив:
var a = [{id: 15, name: 'test'},
{id: 11, name: 'asd'},
{id: 88, name: 'qweqwe'}];
a.sort(function(a,b) {
if (a.id > b.id) return 1; //Put a after b
if (a.id < b.id) return -1; //Put a before b
if (a.id == b.id) return 0; //Don't make no changes
});
Затем метод sort сортирует предоставленную функцию со всеми видами элементов массива для ее сортировки.
То, что делает ваш пример - он создает объект функции и просто мгновенно запускает его.