Javascript 将控制器定义为通用对象而不是函数是一种不好的做法吗?
只是想知道,如果您有一个控制器是单例的(如中所示,您知道在您的文档中只有一个实例),那么将它定义为通用对象而不是函数有什么不对吗?e、 g:Javascript 将控制器定义为通用对象而不是函数是一种不好的做法吗?,javascript,Javascript,只是想知道,如果您有一个控制器是单例的(如中所示,您知道在您的文档中只有一个实例),那么将它定义为通用对象而不是函数有什么不对吗?e、 g: var SomeController = { initialize: function(userId){ this.userId = userId; }, alertUserId: function() { alert(this.userId) } } SomeController.initialize(999); SomeCont
var SomeController = {
initialize: function(userId){
this.userId = userId;
},
alertUserId: function() { alert(this.userId) }
}
SomeController.initialize(999);
SomeController.alertUserId();
是的,你可以这样做,但你也可以让它更具体:
var myApp = myApp || {};
myApp.SomeController = myApp.SomeController || {};
myApp.SomeController = {
}
myApp.SomeController1 = myApp.SomeController1 || {};
myApp.SomeController1 = {
}
在这里,我将所有控制器
保存在我的应用程序myApp
中。这称为嵌套命名空间。这里的优点是名称空间之间的冲突更少
var myApp=myApp | |{}
将检查现有的myApp
如果有,它将添加到其中,否则将创建新的,与myApp.SomeController=myApp.SomeController |{}相同代码>和myApp.SomeController1=myApp.SomeController1 | |{}代码>
您应该始终在应用程序中至少维护一级嵌套名称页面,以避免冲突,并使功能更加清晰。这没有错。事实上,这种对象文字模式已经存在一段时间了
进一步阅读:
太棒了,谢谢,我只是没有在任何地方看到过它,这就是为什么我想知道。你可能想详细说明一下你在这里做什么。为什么要创建两个对象,而OP只需要一个?这里究竟什么更“具体”?你发布的内容中有多少与OP的问题有关?wtf正在使用此代码?!只要分配myApp.SomeController={}
一次,如果你打算在下一行对其进行重击,就不需要用myApp.SomeController | |{}
检查它是否已经有一个值。看看如果不存在创建名称空间
部分感谢文章的链接。:)