方法雖然與我來到這個代碼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