В последнее время я много смотрел на код JavaScript и видел два разных способа использования назначения "открытых" свойств IIFE.
Первый - создать переменную и присвоить ее свойству внутри IIFE следующим образом:
var public1;
(function(){
var foo= "Foo", bar= "Bar";
public1= {
getFoo: function(){
return foo;
}
};
}());
Второй способ, который я вижу, это вернуть объект из IIFE следующим образом:
var public2 = (function(){
var foo2= "Foo2", bar2= "Bar2";
return {
getBar: function(){
return bar2;
}
};
}());
Есть ли принципиальная разница между этими двумя способами или это просто вопрос предпочтений? Я также создал скрипку, чтобы вы могли запустить или обновить код, если хотите: http://jsfiddle.net/bittersweetryan/gnh79/3/