Ваша функция никогда не вызывается. Когда вы пишете что-то вроде:
"Abc " + function() { return 'def'; };
Javascript объединит «Abc» с оценкой function() { return 'def'; }
, которая является объектом Function!
Это эквивалентно:
var foo = function() { return 'def'; };
"Abc " + foo;
Javascript преобразует foo
в строку, и результат будет:
"Abc [Object]"
потому что строковое представление объекта Function - '[Object]' (или, может быть, "Abc function() { return 'def'; }"
, это зависит от вашей реализации JS).
Это немного отличается от:
"Abc " + foo();
, которая является функцией , вызывает , а выполняет функцию и дает ожидаемый результат:
"Abc def"
Следуйте рекомендациям Феликса Клинга, чтобы найти решение вашей проблемы.