这是一个非常基本的问题,但我有点困惑。我的理解是约定规定类定义大写,但对象实例不是。因此,当我执行以下操作时:
App = require("app");
module.exports = App.AuthManager = Ember.Object.extend({
apiKey: null,
// Load the current user if the cookies exist and is valid
init: function() {
this._super();
var accessToken = $.cookie('access_token');
var authUserId = $.cookie('auth_user');
if (!Ember.isEmpty(accessToken) && !Ember.isEmpty(authUserId)) {
this.authenticate(accessToken, authUserId);
}
},
// ...
}
我假设我只是在定义 AuthManager 的类定义。然后,如果我这样做:
module.exports = App.ApplicationRoute = Ember.Route.extend({
init: function() {
this._super();
App.AuthManager = App.AuthManager.create();
}
});
我的理解是App.AuthManager = App.AuthManager.create();
实例化实例,ApplicationRouter 几乎是在 ember 应用程序中执行的第一件事。那正确吗?如果是这样,约定不应该规定调用实例authManager
吗?此外,将类定义放入与对象相同的命名空间是否很典型?我怀疑这可能归结为我对 JS 的理解相对较浅,但我们将不胜感激。