登录
注册
node.js 学习社区
export 和module.export的区别?

shinygang

2015-01-29 14:17

一直对export 和module.export有疑问,求指教。区别到底在哪里?

回复 · 1

  • 这个问题其实包含两知识点:一个是JS变量保存的是对象的引用,一个是require获取对象的真正出处。

    module.exports 是模块加载的真正接口,exports 为了操作方便而临时加的一个变量名。代码如下 :

    module.exports = exports = { name:"kingjungun"};

    两个变量保存了对象的引用,平时操作的时候,可以使用exports.xxx 可以少敲几个字母,exports的作用也就这点了。 而使用 requrie 加载模块的时候是在 module.exports 里取对象。

    module.exports 和 exports 的使用注意下面的问题:

    1.如果你对exports进行修改:

    exports.name="kingfucking";

    那么会影响到requrie的对象; module.exports.name 变成了 kingfucking

    2.如果你对exports进行重新赋值,

    exports={name:"kingfucked"}

    那么不会影响到require的对象 module.exports.name 仍然是 kingfucking

    1

发表回复

你可以在回复中 @ 其他人