不使用module.exports是一个坏主意吗?

我使用browserify,使我能够在我的JavaScript文件中包含nodejs模块,然后由浏览器使用。 如果我写我自己的js文件,并需要它(在functions.js中):

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有什么意义吗? 或者我只想在具有许多不同function的大文件中使用它?

你不出口任何东西….所以不,这不是一个坏主意。

通常,如果您要在单独的文件中创build可重用的代码片段,则只能使用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(); 

如果我正确理解你的问题,也许改变你的代码是这样的:

 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);