Javascript arguments

Javascript arguments

Всем доброго времени суток. На связи Алексей Гулынин. В прошлой статье вы узнали про область видимости переменных в Javascript. В данной статье я бы хотел поговорить про объект arguments в Javascript. Все аргументы функции являются локальными переменными. Давайте создадим функцию, которая будет возвращать сумму двух чисел:

function sum(a,b)
{
	return a + b;
}
alert(sum(10,5)); //выйдет 15

В данном примере переменные "a" и "b" являются локальными переменными функции "sum".

Возникает вопрос: а что делать, если мы хотим возвращать сумму произвольного числа переменных? Не указывать же весь список параметров в определении функции. Для этого у каждой функции есть локальная переменная – объект arguments, который предоставляет доступ ко всем аргументам переданным функции.

Давайте переделаем наш пример:

function sum()
{
	var sum = 0;
	for (var i = 0; i < arguments.length; i++) {
		sum += arguments[i];
	}
	return sum;
}
alert(sum(10,5,5,2,3));//выйдет 25

У объекта arguments есть 2 свойства:

  • length — количество переданных аргументов
  • callee — ссылка на саму функцию

С помощью свойства arguments.callee.length есть возможность узнать количество аргументов, которое функция ожидает получить (количество переменных, использованных при определении функции в качестве аргументов). Если, например, у нас есть функция, ожидающая передачи строго трех аргументов, а ей при вызове передается два, то произойдет ошибка. Чтобы избежать ее, можно перед исполнением кода сравнить эти значения. Давайте напишем такой пример:

function summa3chisel(a,b,c) 
{ 
	if (arguments.length == arguments.callee.length) { 
		return a + b + c;
	} else {
		alert("Передано неверное количество аргументов");
	}
}
alert(summa3chisel(5,1));

В качестве домашнего задания: напишите функцию, которая возвращает произведение чисел.

Подсмотреть код реализации

function proizv()
{
	for (var i = 0, buf = 1; i < arguments.length; i++) {
		buf *= arguments[i];
	}
	return buf;
}
alert(proizv(1,2,3,4));//выйдет 24

В данной небольшой статье вы узнали про объект arguments в Javascript и о том, как с ним работать.

На связи был Алексей Гулынин, оставляйте свои комментарии, увидимся в следующих статьях.


Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *