0
我試圖將對象推到數組上,並將數組作爲隊列處理。當前沒有任何數據從數組中移除,並且每次調用acme.addToValidateQueue函數(連續數次)時,它總是顯示1作爲數組長度。我究竟做錯了什麼?陣列推後的Array.length讀數爲0
var acme = {};
acme.validateQueue = [];
acme.validateQueueLastIndex = 0;
acme.addToValidateQueue = function(fieldData,fieldName){
var queueItem = {
index : acme.validateQueueLastIndex,
fieldData : fieldData,
fieldName : fieldName
};
acme.validateQueue.push(queueItem);
acme.validateQueueLastIndex++;
console.log(acme.validateQueue.length); // shows 1 everytime the queue is called.
if(acme.validateQueue.length === 1){
acme.processValidateQueue();
};
}
acme.processValidateQueue = function(){
if(acme.validateQueue.length){
acme.validate_field(acme.validateQueue.shift());
}
}
你確定你每次都不用這個新的'acme'和'acme.validateQueue'嗎? – user2357112 2014-08-29 22:19:15
你不應該在方法中使用'this'而不是'acme',所以該方法使用它被調用的實例而不是'acme'變量? – user2357112 2014-08-29 22:20:26
你可以告訴我們addToValidateQueue的調用嗎? – 2014-08-29 22:23:55