Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   аналог __autoload в JS (https://javascript.ru/forum/misc/13687-analog-__autoload-v-js.html)

Tim 09.12.2010 13:05

аналог __autoload в JS
 
В PHP есть такая функция "__autoload", которая вызывается в момент когда интерпретатор не может найти определене какого либо класса. Можно ли придумать что нибудь подобое на JS? Можно ли как то перехватить ошибку отсутствия определения функции? Может window.onerror подойдёт? Как тогда определить имя функции?

И ещё вопросик: когда в контенте загружаемом с помощью AJAX встречается сслка на JS файл, то функции из этого файла становятся доступны. При этом если в этом же контенте есть скрипт вида:

<script type="text/javascript">

onload = function() {

}

</script>


то бработчик onload не срабатывает.

Kolyaj 09.12.2010 13:15

Цитата:

Сообщение от Tim
В PHP есть такая функция "__autoload", которая вызывается в момент когда интерпретатор не может найти определене какого либо класса. Можно ли придумать что нибудь подобое на JS? Можно ли как то перехватить ошибку отсутствия определения функции? Может window.onerror подойдёт? Как тогда определить имя функции?

Это просто идеологически невозможно.


Цитата:

Сообщение от Tim
то бработчик onload не срабатывает.

Потому что onload на странице уже случился.

Tim 09.12.2010 14:58

СПС!

dmitriymar 09.12.2010 22:20

можно перехватить отсутствие функции-уже писал об этом.но повторюсь. допустим присвоить какойто переменной маркеру какое либо значение.в функции сделать изменение этого значения. если значение изменилось то функция есть. если не изменилось значит она отсутствует

Tim 10.12.2010 06:54

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

dmitriymar 10.12.2010 09:56

я делал чуть не так-делал подгрузку скрипта-где было несколько функций и проверял наличие одной если она была то и все относящиеся к скрипту тож соответсвено были

x-yuri 11.12.2010 21:28

Цитата:

Сообщение от Kolyaj
Это просто идеологически невозможно.

а что значит идеологически невозможно?

PeaceCoder 14.12.2010 13:22

Цитата:

Сообщение от x-yuri
а что значит идеологически невозможно?

а то что в JS нет такого собития и умышленно его не предугадать. Это тоже самое если бы в JS можно было перехватывать обычные ошибки не прерывая ход работы скриптов.

Kolyaj 14.12.2010 13:28

Цитата:

Сообщение от x-yuri
а что значит идеологически невозможно?

Цитата:

Сообщение от PeaceCoder
а то что в JS нет такого собития и умышленно его не предугадать.

Идеологически, это скорее, для JS скачать файл с сервер совсем не то же самое, что для PHP прочитать файл с диска.

x-yuri 14.12.2010 13:32

может, скорее, то, что js не рассчитан на выполнение в какой-то конкретной среде и даже если бы он ее обязывал предоставлять для этого какие-то интерфейсы, то в каком виде бы он указывал, где искать класс?


Часовой пояс GMT +3, время: 19:25.