Рассмотрим этот пример:
function a() {
/* this is my function a */
}
a()
(function() {
/* This is my closure */
})()
Что произойдет, так это то, что он будет оцениваться так:
function a() {
/* this is my function a */
}
a()(function() {})()
Так что все, что возвращается a
, будет рассматриваться какФункция пыталась быть инициализированной.
Это в основном для предотвращения ошибок при попытке объединить файлы в один файл:
a.js
function a() {
/* this is my function a */
}
a()
b.js
(function() {
/* This is my closure */
})()
Если мы объединяем эти файлы вместе, это вызовет проблемы.
Поэтому не забывайте ставить ваш ;
перед (
и, возможно, такженесколько других мест.Btw.var a = 1;;;var b = 2;;;;;;;;;var c = a+b;
совершенно корректно JavaScript