Отсутствие какого-либо наследования между различными страницами 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.
|