1.4 Функции.
Функции - один из фундаментальных блоков JavaScript. Функция - JavaScript-процедура
- набор операторов, который исполняет определенную задачу. Чтобы использовать
функцию, необходимо сначала определить ее.
Определение функции состоит из ключевого слова function, за которым
следуют:
- - имя функции.
- - список аргументов функции, заключенный в круглые скобки.Друг от друга
аргументы отделяются запятыми.
- - операторы JavaScript, заключенные в фигурные скобки {}.
Операторы могут включать в себя вызовы функций. определенных в текущем
приложении. Различие между определением и вызовом функции традиционно для
языков программирования. Определение функции просто называет функцию и
задает выполняемые ею действия. Запрос функции исполняет указанные действия
с фактическими параметрами. Следует определять функции для страницы в разделе
HEAD документа. В этом случае все функции будут определены прежде, чем
показано содержание документа. Иначе, в то время как страница еще не полностью
загружена, пользователь мог бы исполнить действие, которое вызывает еще
не загруженную функцию, что привело бы к ошибке. Пример простой функции:
function simplefun(str) {
document.write("<HR><P>" + str)
}
Эта функция получает строку str, как аргумент, добавляет некоторые HTML-признаки
к ней с помощью оператора конкатенации и выводит результат в текущем документе
с помощью метода write.
1.4.1 Использование функций.
В Navigator'е можете использовать любую функцию, определенную в текущей
странице. Можно также использовать функции, определенные в других поименованных
окнах и фреймах. В LiveWire-приложениях можно использовать любую функцию
скомпилированную с приложением. Как уже было сказано, определение функции
не исполняет ее. Для того, чтобы функция выполнилась ее необходимо вызвать.
Предположим функция simplefun была определена в разделе HEAD документа,
тогда выполнить ее можно, например, следующим образом:
<SCRIPT> simplefun() </SCRIPT>
Аргументы функции не ограничиваются строками и числами, можно передавать
в качестве аргументов также и целые объекты. Функция может быть в том числе
и рекурсивной, то есть может вызывать сама себя. Например, имеется функция,
которая вычисляет факториал:
function factorial(n) {
if ((n == 0) || (n == 1))
return 1
else {
result = (n * factorial(n-1) )
return result
}
}
Можно вывести результат от одного до пяти следующим образом:
for (x = 0; x < 5; x++) { document.write("<BR>",
x, " factorial is ", factorial(x)) }
Результаты:
0 factorial is 1
1 factorial is 1
2 factorial is 2
3 factorial is 6
4 factorial is 24
5 factorial is 120
1.4.2 Использование массива аргументов.
Аргументы функции хранятся в массиве. Внутри функции можно адресоваться
к параметрам следующим образом:
functionName.arguments [i]
где functionName - имя функции и i - порядковый номер аргумента, начинающийся
с нуля. Так, первый аргумент функции, названной myfunc, есть myfunc.arguments
[0]. Общее число аргументов обозначается переменной arguments.length. При
использовании массива аргументов, можно вызывать функцию с большим количеством
аргументов, чем объявлено. Это часто полезно в том случае, когда заранее
не известно, сколько аргументов будут переданы функции. Чтобы определить
число аргументов фактически переданных функции, можно использовать arguments.length
Например, рассмотрим функцию, которая создает списки в HTML-документе.
Единственный формальный аргумент функции - строка, которая имеет значение
"U" для ненумерованного списка или "O" для нумерованного.
Определение функции:
function list(type) {
document.write("<" + type + "L>") // начало списка
// цикл по аргументам
for (var i = 1; i < list.arguments.length; i++)
document.write("<LI>" + list.arguments[i])
document.write("</" + type + "L>") // end list
}
Можно обращаться к функции с любым числом аргументов и она будет выводить
список указанного типа. Например, следующий запрос к функции
list("О", "one", 1967, "three", "etc.,
etc...")
выводит информацию в виде пронумерованного списка, так как первый аргумент
равен О:
[ Оглавление ] [ Дальше ]
|