繁体   English   中英

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

[英]Is it a bad idea to not use 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有什么意义吗? 或者我只想在一个包含许多不同功能的更大文件中进行操作?

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM