只是想知道,如果你有一个单独的控制器(如你所知,你的文档中只会有一个实例),将它定义为通用对象而不是函数是否有任何问题? e.g:
var SomeController = {
initialize: function(userId){
this.userId = userId;
},
alertUserId: function() { alert(this.userId) }
}
SomeController.initialize(999);
SomeController.alertUserId();
答案 0 :(得分:1)
这没有错。事实上,这个对象文字模式已经存在了一段时间。
进一步阅读:
答案 1 :(得分:-1)
是的,你可以这样做,但你也可以更具体:
var myApp = myApp || {};
myApp.SomeController = myApp.SomeController || {};
myApp.SomeController = {
}
myApp.SomeController1 = myApp.SomeController1 || {};
myApp.SomeController1 = {
}
我将所有controllers
保留在我的应用myApp
中。这称为嵌套命名空间。这里的加分点是命名空间之间的冲突较少。
var myApp = myApp || {};
会检查现有的myApp
是否会添加,否则会创建新的myApp.SomeController = myApp.SomeController || {};
和myApp.SomeController1 = myApp.SomeController1 || {};
您应该始终在应用中保留至少一个级别的嵌套namespaing,以避免冲突并使您的功能更加清晰。