разница между самоисполняющейся функцией и IIFE

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

var foo = function(){
   return { };
}();

и это :

var foo = (function(){
   return { };
}());

person Yeasin Abedin Siam    schedule 31.01.2015    source источник


Ответы (1)


Точно так же.

// This one creates a function expression, then executes that function expression.
var foo = function(){
   return { };
}();

// This one creates a function expression, inside of a set of parens.
// the parens hold an expression.
var foo = (function(){
   return { };
}());

Скобки используются по двум причинам:

1) В этом контексте они являются подсказкой ЧИТАТЕЛЮ, а не компилятору, что у вас есть IIFE.

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

// The parens here force an expression, which means it forces a function expression
// instead of a function statement.
(function () {....})
person Jeremy J Starcher    schedule 31.01.2015
comment
спасибо... теперь моя идея ясна :) - person Yeasin Abedin Siam; 31.01.2015