var sum = function(person) {
arguments[0] = 'Аргумент [0]';
arguments[1] = 'Аргумент [1]';
arguments[2] = 'Аргумент [2]';
console.log(arguments[0]);
console.log(arguments[1]);
console.log(arguments[2]);
console.log(person);
console.log(arguments.length);
}
sum('person');
почему кол-во аргументов выводит 1?
Это псевдомассив, т. е. у него есть числовые ключи и свойство length.
Но всё же это не массив, который следит за своим length, поэтому это свойство проставляется один раз при создании.
Если есть необходимость, работать с псевдо-массивом arguments как с обычны "list array", то можно использовать методы прототипной связи конструктора Array с вызовом в конексте псевдо-массива.
var sum = function(person){
/*
Array.prototype.splice.call(arguments,0, 1, 'Аргумент [0]', 'Аргумент [1]', 'Аргумент [2]');
*/
Array.prototype.splice.apply(arguments, [0, 1].concat('Аргумент [0]', 'Аргумент [1]', 'Аргумент [2]'));
/*
arguments[0] = 'Аргумент [0]';
arguments[1] = 'Аргумент [1]';
arguments[2] = 'Аргумент [2]';
*/
console.log(arguments[0]);
console.log(arguments[1]);
console.log(arguments[2]);
console.log(person);
console.log(arguments.length);
}
sum('person');
Потому-что arguments - это псевдо-массив, содержащий аргументы функции (зарезервированное слово)
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости