arguments - об'єкт який містить параметри які були передані функції.
arguments
Об'єкт arguments це локальна змінна яка є доступна лише у всередині функції. По за функцією об'єкт arguments не доступний.
Для отримання параметрів переданих у функцію за допомогою arguments використовують як масив: arguments[індекс]. Індекс починається з 0.
function test(arg1, arg2, arg3){
alert('перший параметр: '+arguments[0]);
}
test(5);
arguments це тіж самі параметри по назві передані функції лише у вигляді спископодібного об'єкта.
function test(name, count){
console.log( name==arguments[0] ); //true
console.log( count, arguments[1], count==arguments[1] ); // 5, 5, true
}
test('Geo', 5);
arguments зручно використовувати коли функція приймає невизначену кількість параметрів.
//функція яка визначає суму переданих параметрів функції
function suma(){
var res=0;
for(let i=0;i<arguments.length;i++)
res+=arguments[i];
return res;
}
console.log( suma(4, 6, 2, 3) ); //15
alert( suma(5,1,4) ); //10
Передані параметри можна також змінювати через arguments:
function p(x){
arguments[0]=6;
alert(x);
}
p(1);
Змінювати не можна у режимі "use strict".
Об'єкт arguments є масиво подібним, але це не є масив, так як не має ніяких методів і властивостей масиву крім подібної властивості length.
Щоб перетворити arguments у масив використовуйте метод Array.from(), або наступні альтернативи:
function test(){
var mas = Array.from(arguments);
alert(mas);
}
test(1,2,"три");
function test(){
var mas = Array.prototype.slice.call(arguments);
// або
//var mas = [].slice.call(arguments);
/* або, але не всі браузери підтримують
var mas= Array.slice(arguments);
*/
alert(mas);
}
test(3,9,'tesgg');
function test(){
var s='';
for(i=0; i<arguments.length;i++)
s+=i+': '+arguments[i]+'';
alert(s);
}
test(3,78,"тест");
function test(a,b){
alert( 'кількість переданих параметрів: '+arguments.length );
}
test('js',5, 8);