我使用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有什么意义吗?或者我只是想在一个包含许多不同功能的更大文件中进行操作?
答案 0 :(得分: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();
答案 1 :(得分: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);