@eugenedrvnksave

Как экспортировать переменную наружу из модуля?

Сегодняшний вечер у меня преобразовался в вечер изучения базовых моментов в библиотеке underscore.js.
По материалам на learnjs экспорт переменной наружу выглядит следующим образом :
;(function( ) {
  let obj = {
    count: function( ) { ... }
  }
  window._ = obj;
})( )


В underscore экспорт наружу происходит следующим образом :
var _ = function(obj) {
    if (obj instanceof _) return obj;
    if (!(this instanceof _)) return new _(obj);
    console.log(obj);
    this._wrapped = obj;
  };
  
  root._ = _;


Уже на протяжении часа пытаюсь понять как устроен данный фрагмент кода, но как-то не удаётся.
  • Вопрос задан
  • 67 просмотров
Пригласить эксперта
Ответы на вопрос 1
rockon404
@rockon404
Frontend Developer
Потому что underscore можно использовать как в функциональном, так и в ооп стиле:
_.map([1, 2, 3], n => n * 2);

_([1, 2, 3]).map(n => n * 2);

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

root, потому что UMD.

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

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы