繁体   English   中英

如何在对象文字中使用另一个JS函数的返回值

[英]How to use return value from another JS function in object literal

我有一系列两个方法,其中第二个方法必须使用第一个的返回值。 因此,在我的代码中,如下所示, totalRoute需要从totalInvoiced返回的值(即value3 )来计算其值,然后将其显示在我正在构建的寄存器中。 totalRoute将等于totalInvoiced减去的总和notCollectednotCollectedLateexpenditure1expenditure2

我的问题是,当我插入notCollectednotCollectedLateexpenditure1expenditure2的值时, totalRoute值为NaN 我想那是因为我没有使用来自totalInvoiced的返回值,或者该值未正确传递。 为什么我的函数没有从totalInvoiced获取或使用值?

我的小提琴在这里

我的JS代码在这里:

var A = {
    today: document.getElementById("today"),

    displayDate: function () {
        var cD = new Date();
        var day = cD.getDate();
        var months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sept", "Oct", "Nov", "Dec"];
        var year = cD.getFullYear();
        var today1 = A.today;

        today1.innerHTML = (day + "/" + months[cD.getMonth()] + "/" + year);
    },

    invoiced: document.getElementById("invoiced"),

    lastInvoiced: document.getElementById("lastinvoiced"),

    totalInvoiced: function () {

        var value1 = parseFloat(A.invoiced.value);

        var value2 = parseFloat(A.lastInvoiced.value);

        if (isNaN(value1))
            value1 = 0;
        if (isNaN(value2))
            value2 = 0;

        var totalInvoiced1 = value1 + value2;
        var value3 = document.getElementById("daytotal").value = totalInvoiced1 + "€";
        console.log(value3);
        return value3;
    },

    notCollected: document.getElementById("notcollected"),

    notCollectedLate: document.getElementById("notcollectedlate"),

    expenditure1: document.getElementById("expenditure1"),

    expenditure2: document.getElementById("expenditure2"),

    totalRoute: function () {
        var value4 = parseFloat(A.notCollected.value);
        var value5 = parseFloat(A.notCollectedLate.value);
        var value6 = parseFloat(A.expenditure1.value);
        var value7 = parseFloat(A.expenditure2.value);

        if (isNaN(value4))
            value4 = 0;
        if (isNaN(value5))
            value5 = 0;
        if (isNaN(value6))
            value6 = 0;
        if (isNaN(value7))
            value7 = 0;

        var totalExp = (value4 + value5 + value6 + value7);
        var value3 = A.totalInvoiced();
        var tRoute = value3 - totalExp;
        var value8 = document.getElementById("total").value = tRoute + "€";

        console.log(value8);
        return value8;
    }


};
window.onload = A.totalInvoiced();
window.onload = A.displayDate();

A.invoiced.addEventListener("change", A.totalInvoiced, false);
A.lastInvoiced.addEventListener("change", A.totalInvoiced, false);

A.notCollected.addEventListener("change", A.totalRoute, false);
A.notCollectedLate.addEventListener("change", A.totalRoute, false);
A.expenditure1.addEventListener("change", A.totalRoute, false);
A.expenditure2.addEventListener("change", A.totalRoute, false);

totalInvoiced中返回的value3包含欧元字符。 只需将totalInvoiced的返回值更改为totalInvoiced1而不是value3 ,即可获得我认为您正在寻找的功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM