看起来它只使用普通的
exports
代替module.exports
在这一行here。
if (typeof exports !== 'undefined') {
Backbone = exports;
但是,此tutorial显示正在使用的module.exports
。
答案 0 :(得分:2)
为什么主干不使用module.exports?
因为它没有。 exports
and module.exports
refer to the same object:
特别是
module.exports
与exports
对象相同。
如果您可以保存几个字符进行输入,那么为什么不这样做呢?
当您使用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
。