2013-10-19 91 views
0

我已經使用外部IFFE文件設置了一個任務來創建一個應用程序,該應用程序使用函數中的函數計算出一組汽車的燃料成本IFFE。然後將其顯示在一個框中。如何將「[object Object]」轉換爲數字

的IFFE可以看到Here,我一直通過設置我的任務的人告訴記者,下面的代碼應該工作來調用正確的函數

var fuel = new fuelCalc(); 


// On the button press 
miles = 10000; 
var cost = fuel.cost(miles); 

然後執行以下操作應該把它放入文本框,

document.getElementById("TotalCost").value = cost; 

然而,它的作用是把在文本框中輸入下列

[目標對象]

我需要添加什麼才能使其顯示計算的金額?

回答

2

您需要指定一年document.getElementById("TotalCost").value = cost[2013];

+1

_Total_向我建議OP可能希望他們加起來 –

0

根據你的代碼,它看起來像你的函數fuelCalc.cost實際上是返回一個對象。

你需要在函數中做進一步的計算,也許:

fuelCalc.prototype.cost = function (annualMileage, start, end) { 
    var costPerLitre = this.costPerLitre; 
    var averageMPG = this.averageMPG; 

    var startYear = start || 1989; 
    var endYear = end || 2020; 
    var totalYears = endYear - startYear; 

    var data = {}; 
      var totalCost = 0; 

    for (var year = startYear, t = endYear; year <= t; year += 1) { 
     data[year] = this.costIn(year, annualMileage); 
        totalCost += data[year] 
    } 

    return totalCost; 
} 
0

你看到[object Object]的原因是fuel.cost(miles)不回成本值,但一個hashcost類的實例可能。

嘗試瀏覽器的JavaScript控制檯上調試這個JavaScript,通過在該行設置斷點:

document.getElementById("TotalCost").value = cost; 

在這一刻控制檯,只打印cost變量。它將列出對象結構,並可從中提取相關數據。

相關問題