Это законно? И работает ли это во всех браузерах?
function func1(a, b, c) {
//b == 2 here
change_em(arguments);
//b should equal 3 here
}
function change_em(args) {
args[0] = 6;
args[1]++;
args[2] = [];
}
func1('foo', 2);
Если вам интересно, мне нужно настроить аргументы в функции. Макрос был бы идеальным, за исключением того, что в javascript его нет. Выполнение этого должным образом, т.е. передача переменных в функцию, затем возврат их в объекте, а затем извлечение их в вызывающей программе, будет почти таким же количеством кода, как простое копирование / вставка функции настройки.