0

我被设置了一项任务,使用外部 IFFE 文件创建一个应用程序,该应用程序使用 IFFE 内部的功能计算一队汽车的燃料成本。然后将其显示在一个框中。

可以看到 IFFE 在这里,为我设置任务的人告诉我,以下代码应该可以调用正确的函数

var fuel = new fuelCalc();


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

然后执行以下操作应将其放入文本框中,

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

但是,它所做的只是将以下内容放在文本框中

[对象对象]

我需要添加什么才能使其显示计算出的金额?

4

3 回答 3

2

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

于 2013-10-19T12:27:12.410 回答
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;
}
于 2013-10-19T12:29:43.153 回答
0

您看到的原因[object Object]是因为fuel.cost(miles)不返回成本值,但可能是类的一个hash或实例。cost

尝试在浏览器的 javascript 控制台上调试此 javascript,方法是在以下行设置断点:

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

此时在控制台中,只需打印cost变量。它将列出对象结构,您可以从中提取相关数据。

于 2013-10-19T12:31:43.637 回答