шаблоны кода базовой библиотеки, которые я не мог понять

Я разработчик javascript среднего уровня, пытаясь понять, как великий разработчик javascript пишет свой код, и я решил начать изучать библиотеку Backbone в качестве отправной точки.

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

код1-

(function(){
   var root = this;
}).call(this);

есть ли какая-то конкретная причина использовать метод вызова вместо простого использования (), или это просто предпочтение кодирования, если мне нужно написать тот же код, я бы сделал что-то вроде этого.

(function(root){

})(this);

код2-

  var Backbone;
  if (typeof exports !== 'undefined') {
    Backbone = exports;
  } else {
    Backbone = root.Backbone = {};
  }

теперь нет определения экспорта в глобальной области, и он не определен нигде в локальной области, тогда что, если блок делает здесь, если бы я писал тот же код, что и написал бы

  var Backbone = root.Backbone = {};

код 3

var _ = root._;
if (!_ && (typeof require !== 'undefined')) _ = require('underscore')._;

снова я не могу найти определение require нигде в локальной или глобальной области видимости

6
задан nitesh sharma 16 August 2012 в 09:25
поделиться