为什么主干不使用module.exports?

时间:2013-08-12 19:43:14

标签: javascript backbone.js

看起来它只使用普通的

exports代替module.exports

在这一行here

if (typeof exports !== 'undefined') {
    Backbone = exports;

但是,此tutorial显示正在使用的module.exports

2 个答案:

答案 0 :(得分:2)

  

为什么主干不使用module.exports?

因为它没有。 exports and module.exports refer to the same object

  

特别是module.exportsexports对象相同。

如果您可以保存几个字符进行输入,那么为什么不这样做呢?

当您使用document.getElementById代替window.document.getElementById时,您也会这样做。打字更多,不会增加任何好处。


在教程中,他们使用module.exports,因为他们希望显示导出符号exports之间的差异,即

exports.foo = bar;

覆盖 exports对象

module.exports = bar;
必须使用module.exports

exports = bar;无效。)

答案 1 :(得分:1)

在浏览器中考虑module,如window。实际上,它们基本上是一回事。

因此,与浏览器中执行的javascript中的window.location === location一样,在节点环境中module.exports === exports