Отсутствие какого-либо наследования между различными
страницами Website заставляло разработчиков перетаскивать из одной
страницы в другую довольно большое количество часто используемых
функций и переменных. Разговоры о том, что было бы неплохо получить
возможность доступа к глобальным ресурсам или возможность определять
такие глобальные ресурсы, ведутся с самого момента появления
JavaScript. К сожалению, стройного логичного механизма передачи
параметров, функций и переменных от одного окна или фрейма другому нет
и в JavaScript 1.1. Однако, продвижение в этом направлении есть.
У контейнера SCRIPT появился атрибут SRC. Это
дает возможность авторам строить своеобразную библиотеку функций, к
которым можно обращаться из любой страницы, в которой будет ссылка на
такую библиотеку. При этом вовсе необязательно размещать саму
библиотеку на том же сервере, где размещены и гипертекстовые страницы
Website. Можно использовать и чужие функции, написанные кем-либо из
ветеранов программирования на JavaScript на другом конце Земли. В
атрибуте SRC используется обычный URL. Внутри файла скриптов не
используются теги SCRIPT. Это обычный файл с использованием определений
функций и переменных. Естественно, что использование чужих скриптов
может обернуться не только полезными приобретениями, но и
непредсказуемыми проблемами. Для обычных пользователей страниц Website
подкачка большого количества скриптов может стать просто дополнительным
источником затрат. Наиболее вероятным случаем может стать использование
одной-двух функций из библиотеки на одной странице, а качать придется
всю библиотеку. Другой новой возможностью работы с функциями стало
введение нового объекта Function. Объект Function порождается
конструктором Function:
new_Function = new Function(arg1,arg2,...,argn, function_body) Главное отличие от обычного декларирования функции
заключается в том, что в данном случае порождена переменная
new_Function, с которой можно работать, как с любым другим объектом.
При обычном определении функции такой переменной не порождается. Как
любой объект Function имеет свои свойства, но не имеет методов. В
качестве свойств функции выступают аргументы и возможность назначения
новых свойств через prototype. В заключении разговора о функциях и
наследовании хочется еще раз обратить внимание на свойство opener окон
и фреймов. Это свойство можно использовать при обращении к объектам
страницы-родителя, что позволяет компенсировать отсутствие наследования
и глобальных переменных в JavaScript.
Назад | Содержание | Вперед |