2015-04-18 3 views
1

Я использую браузер, который позволяет мне включать модули nodejs в файлы javascript, которые затем могут использоваться браузером. Если я пишу свой собственный JS файл и требуют, как так (в functions.js):Неплохо ли не использовать module.exports?

require('./_menu'); 

и вот этот файл меню:

var $ = require('jquery'); 

$(window).scroll(function() { 
    var scroll = $(window).scrollTop(); 

    if (scroll >= 100) { 
     $(".js-navigation").addClass("navigation--nav-color-two"); 
    } else { 
     $(".js-navigation").removeClass("navigation--nav-color-two"); 
    } 
}); 

Тогда вы заметите, что я не использовал module.exports и все по-прежнему без проблем. Если я использую module.exports, то все будет работать одинаково. Есть ли смысл использовать здесь module.exports? Или я просто хочу сделать это в большем файле с множеством различных функций?

+0

А почему вы пишете JQuery с очень зр особые события браузера в узле? – adeneo

+2

^^^^ Вы когда-нибудь слышали о Browserify? – reg4in

+0

все файлы javascript скомпилированы в один файл functions.js – timhc22

ответ

3

Вы ничего не экспортируете .... так что нет, это неплохая идея.

Как правило, используется только module.exports если вы создаете многоразовый кусок кода в отдельном файле, например:

//MyClass.js 
    var MyClass = function() { 

    }; 

    MyClass.prototype.methodOne = function() { 

    }; 

    module.exports = MyClass; 

    //main.js 
    var MyClass = require('MyClass.js'); 
    var myInstance = new MyClass(); 

    myInstance.methodOne(); 
0

, если я правильно понимаю ваш вопрос, возможно, изменить свой код так:

var $ = require('jquery'); 

module.exports = function(window){ 
    $(window).scroll(function() { 
     var scroll = $(window).scrollTop(); 

     if (scroll >= 100) { 
      $(".js-navigation").addClass("navigation--nav-color-two"); 
     } else { 
      $(".js-navigation").removeClass("navigation--nav-color-two"); 
     } 
    }); 
} 

, когда вы хотите, чтобы требовать его:

var scroll = require('./_menu'); 
scroll(window); 
Смежные вопросы