arguments

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);