首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

exports和module.exports介绍

在nodejs中,提供了exports和module.exports导出模块, require对象从外部获取一个模块的,即所获取模块的 exports或者module.exports导出的模块。...module.exportsexports是属于CommonJS模块规范!根据这个规范,每个文件就是一个模块,有自己的作用域。在一个文件里面定义的变量、函数、类,都是私有的,对其他文件不可见。...这个变量是一个对象,它的exports属性(即module.exports)是对外的接口。加载某个模块,其实是加载该模块的module.exports属性。...如果你希望你的模块就想为一个特别的对象类型,请使用module.exports;如果希望模块成为一个传统的模块实例,请使用exports.xx方法;module.exports才是真正的接口,exports...最终返回给调用的是module.exports而不是exports

1.5K20

exports 和 module.exports 的区别

我们只需知道三点即可知道 exports 和 module.exports 的区别了: exports 是指向的 module.exports 的引用 module.exports 初始值为一个空对象...; } 其实是对 exports 进行了覆盖,也就是说 exports 指向了一块新的内存(内容为一个计算圆面积的函数),也就是说 exports 和 module.exports 不再指向同一块内存...= module.exports 原因也很简单, module.exports = somethings 是对 module.exports 进行了覆盖,此时 module.exportsexports...的关系断裂,module.exports 指向了新的内存块,而 exports 还是指向原来的内存块,为了让 module.exportsexports 还是指向同一块内存或者说指向同一个 “对象...”,所以我们就 exports = module.exports

68210
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    exports 和 module.exports 的区别

    require 用来加载代码,而 exports 和 module.exports 则用来导出代码。...但很多新手可能会迷惑于 exports 和 module.exports 的区别,为了更好的理解 exports 和 module.exports 的关系,我们先来巩固下 js 的基础。...明白了上述例子后,我们只需知道三点就知道 exports 和 module.exports 的区别了: module.exports 初始值为一个空对象 {} exports 是指向的 module.exports...我们经常看到这样的写法: exports = module.exports = somethings 上面的代码等价于: module.exports = somethings exports = module.exports...原理很简单,即 module.exports 指向新的对象时,exports 断开了与 module.exports 的引用,那么通过 exports = module.exportsexports

    1.1K40

    nodejs中module.exportsexports区别?

    请牢记一条原则:无论使用 exports 暴露成员,或是 module.exports 暴露成员,最终暴露的结果,都是以 module.exports 所指向的对象为准。...exports 是 node 为了简化向外共享成员的代码,提供的一个新方式,在默认情况下,exports 和 module.exports 指向的是同一个对象(为了不混淆,你可以理解为 exports...是 module.exports 对象地址的一个引用,exports 本质是一个变量) 两者没有区别,是全等的 注意: 在使用 module.exports 时,我们可以将某一个对象赋值给 module.exports...原因是因为 exports 在默认情况下是指向 module.exports 对象的引用,如果为 exports 赋值了,那么也就是说 exports 不再指向 module.exports 所指的对象的地址...重要结论:module.exportsexports 同指一个对象,但是最终暴露结果以 module.exports 的为准,上面的代码中,exports 改变了指向,而我们又没有为 module.exports

    67230

    seajs简记

    参考seajs快速入门 一、前端模块化的价值 解决命名冲突 摆脱文件依赖 性能优化 提高可维护性 seajs.use方法调用 通过exports暴露接口 通过require引入依赖 二、Sea.js...的常用 API seajs.config base string    Sea.js 在解析顶级标识时,会相对 base 路径来解析  seajs.use 用来在页面中加载模块 require...exports 是一个对象,用来向外提供模块接口 可以直接将方法赋给接口,也可以将其添加到对象里面赋给接口 1 define(function(require, exports, module)...9 }); 1 define(function(require, exports) { 2 3 // 对外提供 foo 属性 4 exports.foo = 'bar'; 5 6...顶级标识:顶级标识不以点(.)或斜线(/)开始, 会相对模块系统的基础路径(即 Sea.js 的 base 路径)来解析 四、 使用步骤 引入sea.js文件(方法与引用jQuery相同) 配置信息 在

    1.4K20
    领券