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

Node.js module.exports和exports的区别

时间:2016-12-11 23:23:57      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:require   node.js   test   mil   font   pre   方法   代码   对象   

require 用来加载代码,而 exports 和 module.exports 则用来导出代码,从接触node.js就不会它们两陌生,上代码:

foo.js

 exports.a = function(){
     console.log(‘a‘)
 }

 exports.a = 1 

test.js  

 var x = require(‘./foo‘);

 console.log(x.a) //1

foo.js

 exports.a = function(){
  console.log(‘a‘)
 }

 module.exports = {a: 2}
 exports.a = 1 

test.js

 var x = require(‘./foo‘);

 console.log(x.a)// 2

所有的exports收集到的属性和方法,都赋值给了Module.exports。当然,这有个前提,就是Module.exports本身不具备任何属性和方法。如果,Module.exports已经具备一些属性和方法,那么exports收集来的信息将被忽略。

可以这样理解,每一个node.js执行文件,都自动的创建一个module对象,同时,module对象会创建一个exports的属性,初始化值为一个空对象,exports会引用这个module对象的exports属性,而当module.exports被改变的时候,exports不会改变。模块导出的时候,真正执行的是module.exports。

 

 

Node.js module.exports和exports的区别

标签:require   node.js   test   mil   font   pre   方法   代码   对象   

原文地址:http://www.cnblogs.com/xueandsi/p/6160775.html

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