首页 > 代码库 > Node.js学习笔记(一)module.exports与exports
Node.js学习笔记(一)module.exports与exports
在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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。