Следуйте этим простым шагам, чтобы получить ссылку на текущий исполняемый блок сценариев:
Пример (ABCDE345678 является уникальным ID) :
<script type="text/javascript">
var A=document.getElementsByTagName('script'),i=count(A),thi$;
for(;i;thi$=A[--i])
if((thi$.innerText||thi$.textContent).indexOf('ABCDE345678'))break;
// Now thi$ is refer to current script block
</script>
btw, для вашего случая вы можете просто использовать старомодный метод document.write () для включения другого скрипта. Поскольку вы упомянули, что DOM пока не отображается, вы можете воспользоваться тем фактом, что браузер всегда выполняет скрипт в линейной последовательности (за исключением отложенного, который будет отображаться позже), поэтому остальная часть вашего документа по-прежнему «не существует». Все, что вы пишете через document.write (), будет размещено сразу после сценария вызывающего абонента.
Пример исходной HTML-страницы :
<!doctype html>
<html><head>
<script src="script.js"></script>
<script src="otherscript.js"></script>
<body>anything</body></html>
Содержание script.js :
document.write('<script src="inserted.js"></script>');
После визуализации структура DOM станет:
HEAD
SCRIPT script.js
SCRIPT inserted.js
SCRIPT otherscript.js
BODY
Первый ответ хорош и дает некоторые структурные ответы, но другой подход должен думать о том, что Вы делаете. Модули об обеспечении методов, которые можно использовать через несколько классов - думают о них как "библиотеки" (как Вы видели бы в приложении для направляющих). Классы об объектах; модули о функциях.
, Например, системы аутентификации и авторизации являются хорошими примерами модулей. Работа систем аутентификации через несколько классов уровня приложения (пользователи аутентифицируются, сессии, справляется с аутентификацией, много других классов будет действовать по-другому на основе подлинного состояния), таким образом, действие систем аутентификации как общие API.
Вы могли бы также использовать модуль при совместном использовании методов через несколько приложений (снова, модель библиотеки хороша здесь).
В основном модуль нельзя инстанцировать. Когда класс включает модуль, суперкласс прокси сгенерирован, который обеспечивает доступ ко всем методам модуля, а также методам класса.
модуль А может быть включен несколькими классами. Модули не могут быть наследованы, но эта "mixin" модель обеспечивает полезный тип "нескольких inheritrance". Пуристы OO не согласятся с тем оператором, но не позволяют чистоте помешать получению сделанного задания.
<час> (Этот ответ, первоначально связанный с http://www.rubycentral.com/pickaxe/classes.html
, но та ссылка и ее домен, больше не активен.)