阅读 112

exports 和 module.exports 你要了解一些概念和为什么

默认导出空对象:

  1. 在没有任何内容导出的时候,默认会导出 module.exports 一个空对象 "{}"

  2. require获取文件路径时,可以不加后缀名,默认的后缀名是"js"

在这里插入图片描述

exports 和  module.exports 相等原因

  1. 系统默认设置:exports = module.exports ,把exports 的内存地址指向module.exports的内存地址

  2. 这两个导出都是在同一个对象里面,说明 exportsmodule.exports 指向的是同一个对象

在这里插入图片描述

修改导出的值,结果无变原因

  1. 在导出后,我们把 exports = {name:'小江'} 重新赋值,发现改了后发现结果并无变化

  2. 原因是系统默认导出找的是 module.exportsmodule.exports  的值还是 {a:1,c:3}

在这里插入图片描述

修改导出的值,如何才能改变结果?

既然修改exports不能改变值,那就修改module.exports 的值看看能不能改成功? 系统看的是module.exports,修改了 module.exports的值 结果是肯定会改变

在这里插入图片描述

exports和module.exports 使用注意

  1. 使用exports时,只能单个设置属性 exports.a = a;

在这里插入图片描述

  1. 使用module.exports时,可以单个设置属性,也可以整个赋值 (只是做演示)

    要是直接给 module.exports 赋值,会覆盖掉前面设置 module.exports 的值

在这里插入图片描述

模块初始化

  1. 一个模块中的JS代码仅仅在模块第一次被使用时执行一次,并且在使用的过程中进行初始化,之后缓存起来便于后续继续使用

在这里插入图片描述


作者:前端酱紫
链接:https://juejin.cn/post/7022675855956508685


文章分类
后端
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐