JavaScript: глобальная область видимости

В наше время я создаю .js файл с большим количеством функций, и затем я связываю его со своими страницами HTML. Это работает, но я хочу знать то, что является лучшим способом (хорошие методы), чтобы вставить js в мои страницы и избежать конфликтов с объемом... Спасибо.

9
задан thomas 16 July 2010 в 14:22
поделиться

4 ответа

Вы можете заключить их в анонимную функцию, например:

(function(){ /* */ })();

Однако, если вам нужно повторно использовать все функции javascript, которые вы написали в другом месте (в других скриптах), вам лучше создать единый глобальный объект, на котором к ним можно получить доступ. Либо вроде:

var mySingleGlobalObject={};
mySingleGlobalObject.someVariable='a string value';
mySingleGlobalObject.someMethod=function(par1, par2){ /* */ };

, либо альтернативный, более короткий синтаксис (который делает то же самое):

var mySingleGlobalObject={
  someVariable:'a string value',
  someMethod:function(par1, par2){ /* */ }
};

Затем к нему можно будет получить доступ позже из других скриптов, например:

mySingleGlobalObject.someMethod('jack', 'jill');
13
ответ дан 4 December 2019 в 07:22
поделиться

ЛУЧШИЙ способ, но многие системы PHP (я смотрю на вас, Drupal) берут имя своего конкретного плагина и добавляют его ко всем именам своих функций. Вы могли бы сделать что-то подобное, добавив имя вашей возможности к именам ваших функций - «mything_do_action ()»

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

1
ответ дан 4 December 2019 в 07:22
поделиться

Простая идея - использовать один объект, который представляет ваше пространство имен:

var NameSpace = {
    Person : function(name, age) {

    }
};

var jim= new NameSpace.Person("Jim", 30);
10
ответ дан 4 December 2019 в 07:22
поделиться

Лучший способ - создать новую область видимости и выполнить в ней свой код.

(function(){
  //code here
})();

Это лучше всего использовать, когда доступ к глобальной области видимости минимален.

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

6
ответ дан 4 December 2019 в 07:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: