NodeJs学习——模块系统

module.exports与exports的区别

每一个node.js执行文件,都自动创建一个module对象,同时,module对象会创建一个叫exports的属性,初始化的值是 {}

module.exports = {};

Node.js为了方便地导出功能函数,node.js会自动地实现以下这个语句

foo.js

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

exports.a = 1 

test.js

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

 console.log(x.a)

看到这里,相信大家都看到答案了,exports是引用 module.exports的值。module.exports 被改变的时候,exports不会被改变,而模块导出的时候,真正导出的执行是module.exports,而不是exports

再看看下面例子

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)

result:2
exports在module.exports 被改变后,失效。

exports = module.exports = createApplication

这样做的好处就是,当使用module.exports的时候,使得之前的exports不失效。

阅读更多
文章标签: node module 模块
个人分类: nodejs
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭