Оператор return используют для возврата значения из функции или обработчика события. Рассмотрим пример с функцией:
function sign(n){ if (n>0) return 1; if (n<0) return -1; return 0;} alert( sign(-3) );
Обратите внимание: оператор return не только указывает, какое значение должна вернуть функция, но и прекращает выполнение дальнейших операторов в теле функции.
При использовании в обработчиках событий оператор return позволяет отменить или не отменять действие по умолчанию, которое совершает браузер при возникновении данного события. Отменить его, однако, можно не для всех событий. Рассмотрим пример:
В этом примере без оператора return false пользователь увидел бы окно предупреждения "Не отправим!" и далее был бы перенаправлен на страницуnewpage.html. Оператор же return false позволяет отменить отправку формы, и пользователь лишь увидит окно предупреждения.
Аналогично, чтобы отменить действие по умолчанию для параметров событийonClick, onKeyDown, onKeyPress, onMouseDown, onMouseUp, onSubmit, onReset, нужно использовать return false. Для события onMouseOver с этой же целью нужно использовать оператор return true. Для некоторых же событий, например onMouseOut, onLoad, onUnload, отменить действие по умолчанию невозможно.
Мы объединили описание функций и объектов в одной лекции по причине того, что они тесно взаимосвязаны. Каждая функция является не только именем для группы операторов, но одновременно и объектом. Объекты же (пользовательские) создаются с помощью функций (конструкторов).
Язык программирования не может обойтись без механизма многократного использования кода программы. Такой механизм обеспечивается процедурамиили функциями. В JavaScript функция выступает в качестве одного из основныхтипов данных. Одновременно с этим в JavaScript определен класс объектовFunction.
В общем случае любой объект JavaScript определяется через функцию. Для создания объекта используется конструктор, который в свою очередь вводится через Function. Таким образом, с функциями в JavaScript связаны следующие ключевые вопросы:
функция как тип данных;
функция как объект;
функция как конструктор объектов.
Именно эти вопросы мы и рассмотрим в данном разделе.