Встроенные методы, собственные функции и обработка событий

В JavaScript имеется целый ряд встроенных объектов, но есть возможность создавать и свои собственные функции (и объекты). Объявление функции начинается с ключевого слова function. В JavaScript отсутствует возможность указать тип данных возвращаемого значения (и, как следствие, в языке отсутствует ключевое слово void); функция может ничего не возвращать. Если вы предполагаете возвращать какое?либо значение, используйте инструкцию return.

В примере 2.7 демонстрируется использование метода replace(), доступного для всех строк, который обеспечивает поддержку регулярных выражений. Как можно заметить, следующий сценарий преобразует некоторые символы, имеющие специфическое назначение в языке разметки HTML, в соответствующие специальные последовательности символов. Сценарий производит несколько обращений к методу replace() подряд. Первым вызовом производится замещение символа & на его эквивалент (&), затем друг за другом производится замещение остальных служебных символов (<, >, " и ') на соответствующие им «экранированные» сущности. Таким образом, любая строка, обработанная сценарием, будет преобразована в разметку HTML, как это сделал бы ASP.NET?метод Server.HtmlEncode().

Пример 2.7.


Создание собственной функции JavaScript?function.htm

"http://www.w3.org/TR/xhtml1/DTD/xhtml1?transitional.dtd">
JavaScript


(body)

(/body)


В результате исполнения этого сценария будет выведена строка <hr/>, которая будет отображаться броузером как
, но не будет приводить к выводу горизонтальной линии.

Язык JavaScript не поддерживает возможность перегрузки функций; он не фиксирует число их аргументов. Если функции передать число аргументов меньшее, чем было указано при ее объявлении, недостающие аргументы внутри функции получат значение null.

При этом, как демонстрирует пример 2.8, если функции передается большее число аргументов, чем было предусмотрено, доступ к избыточным аргументам можно получить с помощью свойства arguments (сокращенно от <ИмяФункции>.arguments).

Пример 2.8.


Создание собственной функции с переменным числом аргументов JavaScript?function?arguments.htm

"http://www.w3.org/TR/xhtml1/DTD/xhtml1?transitional.dtd">
JavaScript

(body)


Кроме того, JavaScript поддерживает анонимные функции, то есть функции, которые не имеют имени. В JavaScript анонимные функции иногда используются для обработки событий. Например, атрибуту onload тега можно присвоить в качестве значения программный код JavaScript, который будет исполнен единственный раз, сразу по завершении загрузки HTML?страницы. (В действительности таким образом можно обрабатывать любые события, привязанные к разметке HTML.) Это – встроенный обработчик события на языке JavaScript.

Чтобы определить обработчик события, достаточно присвоить атрибуту, имя которого является результатом конкатенации строки on с наименованием события, программный код JavaScript, который должен быть исполнен при появлении этого события.


Существуют и другие способы привязать программный код к событию, но методика на основе анонимных функций и атрибутов HTML используется наиболее часто.

Следующий фрагмент выведет окно со словом "Loaded" по окончании загрузки страницы:

В общем случае синтаксис определения обработчика события выглядит так, как показано ниже:

Связать событие с функцией?обработчиком можно и программным способом. Базовый объект страницы называется window, таким образом можно присвоить функцию свойству window.onload, как показано в следующем примере:

function Functionname() {
// обработка события
}
window.onload = Functionname;

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

window.onload = function() {
// обработка события
}

Наконец, ниже приводится пример анонимной функции, которая принимает два аргумента:
window.onload = function(a, b) {
// обработка события с использованием аргументов a и b
}

Такой подход очень удобен и, как можно заметить, часто используется платформой ASP.NET AJAX.

Оцените статью: (0 голосов)
0 5 0

Статьи из раздела ASP.NET AJAX на эту тему:
Доступ к произвольным элементам
Доступ к элементам страницы
Доступ к элементам формы
Массивы в JavaScript
Методы DOM

Вернуться в раздел: ASP.NET AJAX / JavaScript