Использование нескольких файлов JavaScript - PullRequest
1 голос
/ 06 января 2012

У меня есть очень большое количество объектов, которые я хочу объявить. Однако я хотел бы сделать это во вспомогательном файле javascript, чтобы сохранить беспорядок в моем основном файле javascript. Как я могу сделать это так, чтобы код в основном файле javascript все еще имел доступ к объектам, которые я создаю во вспомогательном файле?

Ответы [ 2 ]

2 голосов
/ 06 января 2012

Просто объявите объекты вне области метода, и они будут доступны глобально.

Вспомогательный скрипт:

object myObj;
object myObj;

$(document).ready(function() {
    // Do your manipulations here if needed.
});

Основной сценарий:

$(document).ready(function() {
    myObj.property = "value";
});

Также, укажите ваш «вспомогательный» файл перед вашим основным файлом на странице разметки, например:

<head>
    ...
    <script src="js/auxiliary.js" type="text/javascript"></script>
    <script src="js/primary.js" type="text/javascript"></script>
</head>
0 голосов
/ 06 января 2012

Вот в основном то, что я делаю (это может не работать из коробки, но это довольно близко к тому, как это на самом деле работает для меня):

1) Создайте файл JS с глобальной областью действия и объявите объект, чтобы УДЕРЖАТЬ все эти другие объекты:

global.js

var Registry = {};

Registry.object1 = { name: "Jack", age: "30" };
Registry.object2 = { name: "Sharon", age: "28" };

2) Создайте дополнительный (вспомогательный), который использует эти объекты:

people.js

(function() {
    console.log("Hi, "+Registry.object1.name+"! Meet "+Registry.object2.name+"! She's only "+Registry.object2.age+" years old!"); 
});

который должен вывести: Hi, Jack! Meet Sharon! She's only 28 years old!

Вы должны включить global.js на каждую страницу, содержащую каждый глобальный объект, а затем использовать вспомогательные файлы JS только тогда, когда они вам нужны.

Основная причина, по которой я создал объект Registry для хранения других объектов, заключается в том, чтобы другие объекты нигде не могли конфликтовать. Если у меня есть другой объект с именем «object1» где-то еще, у вас могут возникнуть некоторые проблемы, но если вы вставите их в другой объект-держатель, это обеспечит отсутствие конфликтов. (т. е. Registry.object1 отличается от object1)

Полезно отметить, что объекты могут содержать функции (что фактически делает их классами), поэтому вы можете использовать глобальные классы.

Это в основном то, как я это делаю. Надеюсь, это поможет.

Удачи! :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...