• exports与module.exports的区别


    nodejs有自己的模块系统,分为文件模块和内置模块。webpack是运行在node环境中,在学习vue-cli的webpack配置的时候,

    发现有的文件模块:

    exports.fun1=function(param){ // } 

     exports.fun2=function(param){ // },

    比如utils.js文件。。。

    而有的文件模块:

    module.exports = { // }

    他们有什么区别呢?我只是自己的理解与资料总结,会一直更新与更改:

    • 1.每个js文件一创建,都有一个var exports = module.exports = {};,使exportsmodule.exports都指向一个空对象。
    • 2.module是全局内置对象,exports是被var创建的局部对象。
    • 3.module.exportsexports所指向的内存地址相同
    • 1.module.exports像是exports的大哥,当module.exports{}整体导出时会覆盖exports的属性和方法,
    • 2.注意,若只是将属性/方法挂载在module.exports./exports.上时,exports.id=1module.exports.id=100module.exports.id=function(){}exports.id=function(){},最后id的值取决于exports.idmodule.exports.id的顺序,谁在后,就是最后的值
    • 3.若exportsmodule.exports同时赋值时,exports所使用的属性和方法必须出现在module.exports,若属性没有在module.exports中定义的话,出现undefined,若方法没有在module.exports中定义,会抛出TypeError错误。RHS查询

    总之:如果只是单一属性或方法的话,就使用exports.属性/方法。要是导出多个属性或方法或使用对象构造方法,结合prototype等,就建议使用module.exports = {}

      待求证,这只是总结资料的。

  • 相关阅读:
    [原创]Linux下压力测试工具Webbench介绍
    [原创] 测试策略是什么?
    [原创]测试报告模板
    [原创]性能测试基础知识
    [原创]性能测试工具介绍
    [原创]LoadRunner性能测试过程
    [内部资料]LoadRunner培训初级教程
    [原创]什么是性能测试?
    [原创]软件测试CheckList文档
    开源博客秋色园QBlog多用户博客系统安装视频教程
  • 原文地址:https://www.cnblogs.com/wulinzi/p/8073138.html
Copyright © 2020-2023  润新知