Разница между (function() {})(); и function() {}();

Возможный дубликат:
Являются ли "(function() {})()" и "(function() {}())" функционально равными в JavaScript?

Это то, что я еще не совсем понял, но я использовал функцию() {}() только потому, что мой синтаксис VIM затягивается, если я добавляю скобки, хотя я видел (function() {})() много раз, может быть, это вещь IE?

изменить

var singleton = function() {
    // code
}();

var singleton = (function() {
    // code
})();
+35
источник поделиться
3 ответа

Питер Мишо обсуждает разницу в Важная пара Parens.

В принципе, круглые скобки являются условным обозначением того, что сразу вызывается выражение функции, а не простая функция. Особенно, если тело функции длительное, это уменьшает сюрпризы,

+44
источник

Дополнительный набор круглых скобок дает более четкое представление о том, что вы создаете функцию, а затем вызываете ее. Это стиль кода, а не функциональность.

+9
источник
другие ответы

Связанные вопросы


Похожие вопросы

function(){}();

не работает в большинстве браузеров. Вы должны использовать скобки вокруг функции для ее выполнения.

(function(){})();

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

function(){}

UPD. Если вы не используете круглую скобку, то браузер может неправильно понять вас. Если вы просто вызываете функцию и отклоняете результат

function() {
    alert(1);
}();

то ff и т.д. будет вызывать ошибку

+4
источник

Посмотрите другие вопросы по меткам или Задайте вопрос