Слишком много самозваных функций в javascript — это плохо?

#javascript

#javascript

Вопрос:

Плохо ли иметь слишком много самозваных функций в JavaScript?

Если все они выполняются сразу (загрузка страницы), разве вы не потребляете больше ресурсов, чем если бы у вас были обычные функции, и вызываете их, когда они вам нужны?

Или это ошибка, которая существует в моей голове?

Например:

Тысячи таких:

 var DoIT = (function () {
//heavy stuff
} ()); 
 

ПРОТИВ тысяч таких:

 var DoIT = function () {
//heavy stuff
}; 
 

РЕДАКТИРОВАТЬ # 1:

Я говорю о таких вещах, как

  • настройка оповещений
  • создание диалогового окна jQuery с большой формой
  • изменение размера объектов, когда их необходимо изменить.

Комментарии:

1. На самом деле это не вопрос, на который можно ответить. Следует учитывать все, что влияет на время загрузки страницы, но часто это сложное требование выполнять определенные действия на странице load…so что ты собираешься делать? Конечно, выполнение некритической работы в критические моменты, такие как загрузка страницы, не является оптимальным.

2. О скольких мы говорим? И вы уверены, что их не нужно вызывать позже?

3. Вы говорите об анонимных функциях. Они предлагают отличный метод для выполнения кода в собственной области видимости, без утечки переменных в глобальную / родительскую область. РЕДАКТИРОВАТЬ : код в ваших примерах отличается . Первый блок присваивает возвращаемое значение функции DoIT , в то время как второй блок присоединяет функцию к DoIT .

4. @WillChesterfield: Вы на грани ответа на мой вопрос. Поэтому их немедленное выполнение требует больше ресурсов, поэтому вы говорите, что это не оптимально?

5. @capdragon — нет, это не отнимает больше ресурсов, но использует ресурсы (конечно). Проблема, с которой вы столкнетесь, если будете делать это часто, — это медленное время загрузки страницы, поэтому, как правило, хорошей идеей является как можно меньший объем кода, который выполняется во время загрузки страницы (примечание: иногда это много, много и много кода, потому что так оно и есть).быть)

Ответ №1:

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

Комментарии:

1. Спасибо… это именно то, что мне нужно было знать. ( 1)