0
我有一個對象的單例實例,它有一個方法m1
,調用m2
,調用m3
...依此類推直到m10
。優化參數發送到多種方法的方式
有一組參數,我發送到m1
和僅用於m10
。但我最終將這些參數傳遞給m2
... m9
,儘管它們沒有被這些方法使用。我也不能直接從m1
撥打m10
,因爲m10
需要一些其他的參數。
問題是,我不希望每次都將這些不必要的參數傳遞給每個方法,特別是當它不在內部使用時。有沒有辦法使用閉包來解決這個問題?
var singleTon = function(){};
singleTon.prototype.m1 = function(a,b,c){
this.m2(a,b,c);
};
singleTon.prototype.m2 = function(a,b,c){
this.m3(a,b,c);
};
... //Goes on till m9
singleTon.prototype.m10 = function(a,b,c,d,e){
//Perform some operations with a,b,c,d,e
};
如果您每次都傳遞完全相同的參數,我很困惑。但如果你是,你有沒有使用過'Function.prototype.apply'?它將允許你用'arguments'對象調用一個方法,而不用明確地命名每個方法 - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/apply。希望我不會誤解 – Ian
爲什麼不讓這些對象的這些參數屬性根據需要進行注入? –
@HenriqueBarcelos如果我使它們成爲對象的屬性,那麼它們的作用域就成爲這個單一對象的範圍,它是整個應用程序生命週期的範圍。我希望它的範圍是每個'm1'方法的調用。 – Tushar