использует window.onload для выполнения анонимной функции по тому же базовому принципу, что и шаблон модуля? - PullRequest
1 голос
/ 23 марта 2012

при использовании шаблона модуля в js я заметил, что основными преимуществами являются частные члены и не загромождают глобальное пространство имен, но я хотел бы знать следующее:

(function(){
   //some code...
})(); 

так же, как это:

window.onload = function(){
    //some code...
}

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

Есть ли какие-то другие различия между двумя, которые я могу пропустить?

1 Ответ

1 голос
/ 23 марта 2012

Одно существенное отличие состоит в том, что последний перезапишет любые существующие window.onload, которые могли быть установлены ранее на странице, и, в свою очередь, будет перезаписан любыми более поздними.(Это можно исправить, используя вместо этого window.addEventListener.)

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