Я немного запутался в потоке выполнения функций self invoking в javascript.Функция самозапуска
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<script>
var test = function() {
alert("Test1##");
}
var test2 = function() {
alert("Test2!!");
}
(function() {
test();
})();
</script>
</body>
</html>
Результат: Test2!!
. Я ожидал, что он предупредит Test1##
, так как я вызываю эту конкретную функцию.
Однако, если я включаю точки с запятой после каждой функции test
и test2
, результат будет таким, каким я ожидаю: он будет предупреждать Test1##
.
Как это работает?
JavaScript не пробела языка. Поместите точки с запятой в. – isherwood
"* Однако, если я включаю точку с запятой после каждой функции ... результат будет таким, как я ожидаю, что это будет *" - и именно поэтому использование полуколонок - хорошая идея. –
Вы должны указать точку с запятой после объявления переменной в javaScript, иначе она может печатать неожиданные результаты. var test = function() { alert ("Test1 ##"); }; var test2 = function() { alert ("Test2 !!"); }; (функция() { test(); })(); – abhiagNitk