JavaScript для мага

Функции


В большинстве наших программ на  языке JavaScript мы будем пользоваться функциями. Поэтому уже теперь мне необходимо рассказать об этом важном элементе языка. В большинстве случаев функции представляют собой лишь способ связать вместе нескольких команд. Давайте, к примеру, напишем скрипт, печатающий некий текст три раза подряд. Для начала рассмотрим простой подход:

<html>

<script language="JavaScript">

<!-- hide

document.write("Добро пожаловать на мою страницу!<br>");

document.write("Это JavaScript!<br>");

document.write("Добро пожаловать на мою страницу!<br>");

document.write(Это JavaScript!<br>");

document.write("Добро пожаловать на мою страницу!<br>");

document.write("Это JavaScript!<br>");

// -->

</script>

</html>



И такой скрипт напишет следующий текст

Добро пожаловать на мою страницу!

Это JavaScript!

три раза. Если посмотреть на исходный код скрипта, то видно, что для получения необходимого результата определенная часть его кода была повторена три раза. Разве это эффективно? Нет, мы можем решить ту же задачу еще лучше. Как насчет такого скрипта для решения той же самой задачи?:

<html>

<script language="JavaScript">

<!-- hide

function myFunction() {

  document.write("Добро пожаловать на мою страницу!<br>");

  document.write("Это JavaScript!<br>");

}

myFunction();

myFunction();

myFunction();

// -->

</script>

</html>

В этом скрипте мы определили некую функцию, состоящую из следующих строк:

function myFunction() {

  document.write("Добро пожаловать на мою страницу!<br>");

  document.write("Это JavaScript!<br>");

}

Все команды скрипта, что находятся внутри фигурных скобок - {} - принадлежат функции myFunction (). Это означает, что обе команды document.write() теперь связаны воедино и могут быть выполнены при вызове указанной функции. И действительно, нашем примере есть три вызова этой функции - Можно увидеть, что мы написали строку myFunction() три раза сразу после того, как дали определение самой функции. То естькак раз и сделали три вызова. В свою очередь, это означает, что содержимое этой функции (команды, указанные в фигурных скобках) было выполнено трижды. Поскольку это довольно простой пример использования функции, то у Вас мог возникнуть вопрос, а почему собственно эти функции столь важны в JavaScript. По прочтении данного описания Вы конечно же поймете их пользу. Именно возможность передачи переменных при вызове функции придает нашим скриптам подлинную гибкость - что это такое, мы увидим позже.


Функции могут также использоваться в совместно с процедурами обработки событий. Рассмотрим следующий пример:

<html>

<head>

<script language="JavaScript">

<!-- hide

function calculation() {

  var x= 12;

  var y= 5;

  var result= x + y;

  alert(result);

}

// -->

</script>

</head>

<body>

<form>

<input type="button" value="Calculate" onClick="calculation()">

</form>

</body>

</html>

(online-версия руководства позволит Вам проверить этот скрипт немедленно)

Здесь при нажатии на кнопку осуществляется вызов функции calculation(). Как можно заметить, эта функция выполняет некие вычисления, пользуясь переменными x, y и result. Переменную мы можем определить с

помощью ключевого слова var. Переменные могут использоваться для хранения различных величин - чисел, строк текста и т.д. Так строка скрипта var result= x + y; сообщает браузеру о том, что необходимо создать переменную result и поместить туда результат выполнения арифметической операции x + y (т.е. 5 + 12). После этого в переменный result будет размещено число 17. В данном случае команда alert(result) выполняет то же самое, что и alert(17). Иными словами, мы получаем выпадающее окно, в котором написано число 17.

©1996,1997 by Stefan Koch

e-mail:skoch@rumms.uni-mannheim.de

http://rummelplatz.uni-mannheim.de/~skoch/

Моя книга по JavaScript: http://www.dpunkt.de/javascript

Введение в JavaScript для Мага

© 1996, 1997 Стефан Кох (Stefan Koch)


Содержание раздела