2012-04-25 3 views
2

У меня есть несколько файлов JS; первая - это библиотека, которая будет использоваться следующими, и каждый из этих других файлов имеет функцию main(), которая вызывает функции этого файла.Функции запуска в разных файлах

lib.js => Библиотека

a.js :: главная() => функции вызова в a.js
b.js :: основных() => Функции обработки вызовов в b.js
...
...

Итак, я бы хотел, чтобы выполнялись функции основной для этих файлов (после загрузки lib.js).

Как выполнить каждую функцию main после загрузки JS-файла?
Было бы нагрузка a.js и запустить главный, нагрузка b.js и запустить главный ...

+0

Не могли бы вы перефразировать вопрос? Как вы это понимаете? – Chris

ответ

2

JavaScript не C или что-то подобное.

Неважно, в каком файле вы определяете функцию. Функция будет перезаписана.

Так что, если вы сначала загрузить файл a.js, а затем файл b.jsmain функция будет функция main который вы определили в b.js и функцию main вы определили в a.js не будет существует везде.

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

a.js:

var a = {}; 
a.main = function() { 
    /* do stuff */ 
}; 

b.js:

var b = {}; 
b.main = function() { 
    /* do stuff */ 
}; 

Итак, теперь вы можете позвонить:

a.main(); 

и

b.main(); 
1

Если вам необходимо контролировать зависимости (порядка нагрузки), использование что-то вроде head.js или require.js.

Однако, не загрязняйте свое глобальное пространство имен, повторно используя глобальное имя функции main во всех ваших JS-файлах. В Интернете есть много документации о том, как избежать загрязнения глобального пространства имен и почему это хорошая идея. Это простой веб-поиск.

Более подробная информация в ответах здесь: How do I declare a namespace in JavaScript?

Смежные вопросы