码迷,mamicode.com
首页 > Web开发 > 详细

Node.js学习笔记(一)module.exports与exports

时间:2016-11-17 07:46:14      阅读:147      评论:0      收藏:0      [点我收藏+]

标签:code   使用   int   信息   特定   module   区别   接口   require   

在node.js中模块与文件是一一对应的,也就是说一个node.js文件就是一个模块。如将函数作为模块的方法导出:

var printName=function(name){
        console.log(name);
};
exports.printName=printName;

然后在index.js文件中请求这个模块,使用该模块的方法:

var name=require(‘./name‘);

name.printName(xiaomu);     //xiaomu

其实module.exports才是模块公开的接口,每个模块都会自动创建一个module对象,对象有一个exports的属性,初始值是个空对象{}。而exports只不过是module.exports的一个辅助工具。请求加载模块时最终返回给调用的是moudle.exports而不是exports。关系:

exports = module.exports = {};

 所以exports 和 module.exports 的区别:

1. exports 是指向的 module.exports 的引用;

2.module.exports 初始值为一个空对象 {},所以 exports 初始值也是 {};

3.require() 返回的是 module.exports 而不是 exports;

4.是Module.exports本身不具备任何属性和方法,如果,Module.exports已经具备一些属性和方法,那么exports对象收集来的信息将被忽略。因为Module.exports通过赋值的 方式已经和exports指向的内存不同了。

关于使用场合:如果想把模块作为一个特定的类型就用Module.exports。如果你想你的模块是一个典型的“实例化对象”就用exports。

 

Node.js学习笔记(一)module.exports与exports

标签:code   使用   int   信息   特定   module   区别   接口   require   

原文地址:http://www.cnblogs.com/zhangxiaomu/p/6072266.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!