方法虽然与我来到这个代码JavaScript对象的工作职能:请参阅主JavaScript对象从它们的子对象
var mainModule = {
opt : {
opt1: 'my option1',
opt2: 'my option2',
opt3: 'my option3',
},
init: function(options){
jQuery.extend(this.opt, options);
this.mainMethod();
},
mainMethod: function() {
//do Stuff
var color = this.opt.opt1;
},
secondaryMethod1: function(){/*stuff*/},
secondaryMethod2: function(){/*stuff*/},
secondaryMethod3: function(){/*stuff*/},
secondaryMethod4: function(){/*stuff*/},
thirdlyMethod1: function(){/*stuff*/},
thirdlyMethod2: function(){/*stuff*/},
thirdlyMethod3: function(){/*stuff*/},
thirdlyMethod4: function(){/*stuff*/},
};
有了这个代码,我经常检查选择的对象与this.opt
为this
是mainModule 。 但是,所有的代码都开始凌乱地使用所有不同的方法 ,所以我以这个新代码结束了主对象中新的深度级别。
var mainModule = {
opt : {
opt1: 'my option1',
opt2: 'my option2',
opt3: 'my option3',
},
init: function(options){
jQuery.extend(this.opt, options);
this.mainMethod.init();
},
mainMethod: {
init: function() {
//do Stuff
var color = mainModule.opt.opt1;
},
other: function(){},
functions: function(){},
here: function() {}
},
secondary: {
method1: function(){/*stuff*/},
method2: function(){/*stuff*/},
method3: function(){/*stuff*/},
method4: function(){/*stuff*/},
}
thirdly: {
Method1: function(){/*stuff*/},
Method2: function(){/*stuff*/},
Method3: function(){/*stuff*/},
Method4: function(){/*stuff*/},
}
};
但是用这个新我不能使用this.opt
因为this
不是mainModule了。
有了这种对象,是否有更好的方法来检索可选对象? 这个新的深度级别是必要的,还是应该使用一个伪命名空间?
您的'opt'后面显示'=',无论如何这个JavaScript无效。 – 2014-09-10 11:09:50
@EvanKnowles谢谢,编辑。 – simonLeClerc 2014-09-10 11:42:54