exports VS module.exports
2015-07-20 10:26
309 查看
exports对象是Node中的一个对外接口,其实是通过它为模块闭包提供一个有限的接口,只有exports对象导出的属性或者方法才能够被调用。一般有两种写法:exports.xxx= & module.exports = {}
exports和module.exports大部分情况下是一样的,但是你可以理解成exports是module.exports的一个引用,如果对module.exports进行改变赋值,exports引用的还是之前的地址。就是不管exports设置了多少属性和方法,一旦module.exports进行了赋值,对外暴露的都是module.exports的内容.
不可以通过对 exports 直接赋值代替对 module.exports 赋值。exports 实际上只是一个和 module.exports 指向同一个对象的变量,它本身会在模块执行结束后释放,但 module 不会,因此只能通过指定module.exports 来改变访问接口。
可以使用module.exports = hello,这样来改变输出的对象(原来是exports,现在是hello),但不能直接用exports = hello,这样仍然会导出module.exports,也就是exports对象,不会导出hello.
exports和module.exports大部分情况下是一样的,但是你可以理解成exports是module.exports的一个引用,如果对module.exports进行改变赋值,exports引用的还是之前的地址。就是不管exports设置了多少属性和方法,一旦module.exports进行了赋值,对外暴露的都是module.exports的内容.
不可以通过对 exports 直接赋值代替对 module.exports 赋值。exports 实际上只是一个和 module.exports 指向同一个对象的变量,它本身会在模块执行结束后释放,但 module 不会,因此只能通过指定module.exports 来改变访问接口。
可以使用module.exports = hello,这样来改变输出的对象(原来是exports,现在是hello),但不能直接用exports = hello,这样仍然会导出module.exports,也就是exports对象,不会导出hello.
相关文章推荐
- Java线程池—转载梅子 http://www.cnblogs.com/dolphin0520/p/3932921.html
- 学习英语 打卡
- 定义自己的布局RelativeLayout 绘制网格线
- Flash打包ANE在安卓上使用笔记
- Java生成非对称型加密公钥和私钥的方法
- rabbitmq helloword 例子
- git忽略已被跟踪的文件
- Unity3D 与Android 相互传递消息
- 强连通分量分解 Kosaraju算法 (poj 2186 Popular Cows)
- [Eclispe] NDK内建include路径修改
- Android开发四大组件---Service详解
- Record--1
- 【JavaWeb】(8)监听器
- 撸代码--类QQ聊天实现(基于linux 管道 信号 共享内存)
- xml及json解析
- 天天刷水题~~~(此题题意有点难理解)
- 上周热点回顾(7.13-7.19)
- WPF以及MVVM学习资料
- ubuntu 安装(install) pwntcha[一个做"验证码识别"的开源程序]
- Android消息队列模型——Thread,Handler,Looper,Massage Queue