Javascript 使用require js为主干应用程序命名空间

Javascript 使用require js为主干应用程序命名空间,javascript,backbone.js,namespaces,requirejs,js-amd,Javascript,Backbone.js,Namespaces,Requirejs,Js Amd,我正在尝试为我的主干应用程序创建一个名称空间,这样我就可以在全球范围内拨打电话 通常,我会这样做: var myNamespace = window.myNamespace || {}; myNamespace.SomeView = Backbone.View.extend(..); 不确定如何使用require js实现这一点,您可以在require或定义调用中执行相同的操作,窗口仍然存在(如果您在浏览器中工作) 问题是你为什么需要它?理想情况下,您的所有模块都将使用requireJS定义,

我正在尝试为我的主干应用程序创建一个名称空间,这样我就可以在全球范围内拨打电话

通常,我会这样做:

var myNamespace = window.myNamespace || {};
myNamespace.SomeView = Backbone.View.extend(..);

不确定如何使用require js实现这一点,您可以在
require
定义
调用中执行相同的操作,
窗口仍然存在(如果您在浏览器中工作)


问题是你为什么需要它?理想情况下,您的所有模块都将使用requireJS定义,因此您不需要通过全局对象引用它们。

这里有一个很好的资源,可以帮助您开始使用requireJS和主干:我用更多注释更新了代码示例,我同意@gryzzly。全局变量(名称空间是一种委婉的说法)是执行此操作的旧方法。RequireJS模块是一种新的方式。你不需要也不想要两者。只需使用requirejs模块。谢谢大家!这真的很有帮助。
// views/app.js
define(['router', 'views/main-view'], function (router, mainView) {
  var App = function () { /* main app module */ };
  // do your "global" export
  window.App = App;
  return App;
});

// views/header-view.js
define(['views/app', 'models/user'], function (App, User) {
  // your header view code here
  // note that you have access to `App` already in a closure
  // but you can still talk to it by doing
  globalAppReference = window.App;
  globalAppReference === App; // true
});