Я столкнулся с какой-то странностью в синтаксисе JavaScript, которую я не понимаю.
Я пытался использовать одну анонимную глобальную функцию для глобального сокращения, например:
<script type="text/javascript">
function() {
alert("all code goes here");
}();
</script>
К сожалению, я получаю синтаксическую ошибку. Это исправляет это:
<script type="text/javascript">
var MAIN = function() {
alert("all code goes here");
}();
</script>
Но это неудовлетворительно, потому что теперь существует глобальный MAIN
объект. Затем я наткнулся на это:
<script type="text/javascript">
(function() {
alert("all code goes here");
})();
</script>
Мой коллега увидел это, покачал головой и сказал: "Это какой-то синтаксис".
Что происходит с
var x = function() { .. }();
, для которого требуется скобка без такой переменной
(function() { ... })();
Редактировать: идентичен другому вопросу, с этим великим ответом .