有幾種方法可以處理遞歸循環(任何人都記得SICP在這裏?啊......祝福Scheme)。
createModelView: function (obj,vitalslength,headerValue) {
for(vitalsCount = 0, vitalsLen = vitalslength;
vitalsCount < vitalsLen; vitalsCount++) {
// Business logic... with obj and headerValue
}
// the following will force this method to keep going with the same parameters
// unless you put a conditional return statement before it
// I always use an interim variable so JS can't get confused.
var args = arguments;
// are you sure it's this here and not DynamicModelView.createModelView
this.createModelView.apply(this, args)
}
更爲現實(快),你可能想簡單地把一個while循環裏面的功能:
createModelView: function (obj,vitalslength,headerValue) {
do {
for(vitalsCount = 0, vitalsLen = vitalslength;
vitalsCount < vitalsLen; vitalsCount++) {
// Business logic... with obj and headerValue
}
} while(/* condition which needs to be met to finish loop*/);
}
如果你想確保該功能只運行x次,那麼你可以這樣做:
// notice the last parameter?
createModelView: function (obj,vitalslength,headerValue, x) {
for(var i = 0; i < x; i++)
{
for(vitalsCount = 0, vitalsLen = vitalslength;
vitalsCount < vitalsLen; vitalsCount++) {
// Business logic... with obj and headerValue
}
}
}
希望可以讓你開始。
你的描述有點含糊......你怎麼稱呼那個功能?你是什麼意思,它繼續執行?遞歸的含義是一個條件處於活動狀態時函數繼續執行。你退出的情況是什麼?當你調用這個函數時,你的意思是什麼「爭論」?如果繼續傳遞相同的參數,函數將繼續執行... –
如果從內部調用它,則必須在某處停止遞歸的某個條件。否則,它會無休止地自稱。 – RobG
什麼是「obj」參數? ......但大多數情況下,你知道如何使用'this'嗎?如果你想在功能上編程,請調用'DynamicModelView.createModelView(...)'。 –