Основная проблема находится вокруг этой линии
up+i = function() {
Выражение up+i
создает значение, а не переменную, и место, которое может быть назначено. Вместо этого вы пытались присвоить массив? Если это так, измените его на следующий
up[i] = function() {
EDIT
ОП уточнил, что целью является создание 10 именованных функций. В этом случае должен быть объект, от которого их можно повесить. Я назову это root для примера
var root = {};
for (i = 0; i < 10; i++) {
root['up' + i] = function() {
base.refresh("Field"+i, $t+i);
};
}
Кроме того, сейчас функция захватывает один i
, что означает, что все экземпляры функции будут иметь одинаковое значение для i
. Чтобы предотвратить это, используйте отдельную функцию для захвата значения.
var root = {};
for (i = 0; i < 10; i++) {
root['up' + i] = function(arg) {
return function() { base.refresh("Field"+arg, $t+arg); };
} (i);
}