2014-02-08 55 views
-1

我無法獲得簡單的JavaScript工作。我得到這個錯誤信息:Javascript對象引發類型錯誤

TypeError: tableKeyPerInd1.getTotal is not a function 
tempHold = tableKeyPerInd1.getTotal(); 

從這個代碼:

tableKeyPerInd1 = new table("keyPerformanceIndicators"); 
console.log(tableKeyPerInd1.table); 
tempHold = tableKeyPerInd1.getTotal(); 
console.log(tempHold); 
function table(TableName){ 

    this.table=TableName; 

    function getTotal() 
    { 
    this.runningTotal = 0; 
    columns = new Array("Mon","Tue","Wed","Thu","Fri","Sat"); 
    for(var t=0; t<columns.length ;t+=1){ 
    this.runningTotal += $('SupplementaryExamKPI'+columns[t]) + $('DiabeticScreeningKPI'+columns[t])+$('LvaKPI'+columns[t]); 
    } 
    } 
} 

我怎樣才能解決這個問題?


我認爲如果我發佈完整的解決方案,它可能會幫助別人。我還在此解決方案中添加了如何即時創建對象。因此,這將創建一個總額,它的每一天即this.Mon創建單獨的對象,this.Tue等

tableKeyPerInd1 = new table("keyPerformanceIndicators"); 
columns = new Array("Mon","Tue","Wed","Thu","Fri","Sat"); 

function table(TableName){ 

    this.table=TableName; 
    this.runningTotal = 0; 
    this.Mon = 0; 
    this.getTotal = function getTotal() 
    { 
    this.runningTotal = 0; 

    for(var t=0; t<columns.length ;t+=1){ 
    var supexam = Number.from($('SupplementaryExamKPI'+columns[t]).get('value')); 
    var diabeticscreen = Number.from($('DiabeticScreeningKPI'+columns[t]).get('value')); 
    var lva = Number.from($('LvaKPI'+columns[t]).get('value')); 
    this.runningTotal += supexam + diabeticscreen+lva; 
    this[columns[t]] = supexam + diabeticscreen+lva; 
    } 
    return ; 
    } 
} 
+1

'getTotal'是一個私人功能。如果將其更改爲'this.getTotal = function(){...',則可以調用它。 – Andy

+0

謝謝安迪工作過 – user1616338

回答

0

,而不是

function getTotal() 

嘗試以下

this.getTotal = function() { 
    this.runningTotal = 0; 
    columns = new Array("Mon","Tue","Wed","Thu","Fri","Sat"); 
    for(var t=0; t<columns.length ;t+=1){ 
     this.runningTotal += $('SupplementaryExamKPI'+columns[t]) +       $('DiabeticScreeningKPI'+columns[t])+$('LvaKPI'+columns[t]); 
    } 
}; 
相關問題