美文网首页我爱编程
node中exports 和 module.exports区别

node中exports 和 module.exports区别

作者: IceLake | 来源:发表于2018-03-30 13:56 被阅读0次

    主要区别:

    1、module.exports 初始值为一个空对象 {};
    2、exports 是指向的 module.exports 的引用;
    3、require() 返回的是 module.exports 而不是 exports;

    node会在运行时自动给模块文件添加两个属性:exports和module.exports;
    开始时他们都指向同一个空对象:


    image.png image.png

    改变exports的指向:


    image.png image.png

    所以说exports和module.exports并没有什么联系,只是开始时指向的是同一个对象!
    require引入模块时引入的是module.exports;

    image.png image.png image.png

    我们可以看到这样的写法:

    exports = module.exports = {...}
    

    上面的写法等价于

    module.exports = {...};
    exports = module.exports;
    

    相关文章

      网友评论

        本文标题:node中exports 和 module.exports区别

        本文链接:https://www.haomeiwen.com/subject/qfyfoxtx.html