Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Разница между (function(){})() и (function(){}()) (https://javascript.ru/forum/misc/16681-raznica-mezhdu-function-%7B%7D-i-function-%7B%7D.html)

ruzzx 17.04.2011 21:32

Разница между (function(){})() и (function(){}())
 
Какая разница между:
(function(param){
…
})(arg)

и
(function(param){
…
}(arg))

?

Kolyaj 17.04.2011 21:35

Никакой.

can3p 17.04.2011 22:09

Я бы поправил. Разница есть, но она несущественна. Скобки нужны для того, чтобы функция интерпретировалась как выражение, и благодаря этому сразу выполнялась.

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

Kolyaj 17.04.2011 22:24

Цитата:

Сообщение от can3p
В первом случае выполняется выражение в скобках - получаем функцию, сразу применяем ей аргументы - выполняем.
Во втором случае вызов функции происходит уже внутри скобок

Ну и в чём разница?

can3p 17.04.2011 22:35

В значении выражения в скобках. Как и написал, в этом случае несущественно

B@rmaley.e><e 17.04.2011 22:46

Цитата:

Сообщение от can3p
В первом случае выполняется выражение в скобках - получаем функцию

Выражения в скобках не выполняются.
alert(typeof (undefinedVariable))
alert(typeof (undefinedVariable, undefinedVariable))

monolithed 17.04.2011 22:51

Цитата:

Сообщение от ruzzx
Какая разница

На самом деле, разница носит лишь формальный характер:
var foo = ({
    foo: function() {
        return 'foo';
    }
}).foo();

alert(foo);
var foo = ({
    foo: function() {
        return 'foo';
    }
}.foo());

alert(foo);


Часовой пояс GMT +3, время: 03:16.