2011-12-19 25 views
2

的Backbone.js的annotated source介绍了以下一段代码什么意思“导出到浏览器的”

var Backbone; 
    if (typeof exports !== 'undefined') { 
    Backbone = exports; 
    } else { 
    Backbone = root.Backbone = {}; 
    } 

为“顶级命名空间,所有公共主干类和模块将被连接到这个出口给CommonJS和浏览器。“

在这种情况下,“为浏览器导出”是什么意思?

回答

1

在CommonJS中,您的模块被隔离,您想与您共享的任何内容通过“exports”变量共享。例如,Node.js使用这个。另一方面,如果您只是在浏览器中,那么您不使用exports变量,并在root中添加一个新变量,最终指向window全局变量。

换句话说,如果我们使用的是支持CommonJS的东西,请导出Backbone。如果不是,请将其放入根环境中。