В чем разница между назначением открытых членов IIFE переменной и возвратом объекта - PullRequest
3 голосов
/ 26 августа 2011

В последнее время я много смотрел на код 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/

1 Ответ

6 голосов
/ 26 августа 2011

Разницы нет.

Но я бы сказал, что второе немного легче поддерживать. Когда вы изменяете имя переменной в первом примере, вы должны изменить его и в функции.

...