Javascript对象抛出类型错误

时间:2014-02-08 14:18:47

标签: javascript object

我无法使用简单的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 etc

 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 个答案:

答案 0 :(得分: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]);
    }
};