首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从函数内部的对象传递值

从函数内部的对象传递值
EN

Stack Overflow用户
提问于 2018-02-20 10:53:50
回答 1查看 31关注 0票数 0

我已经工作了一整天,试图将"readData“函数中"returnData.salary”的值传递给"calculateTax“函数中的对象,该函数将获取工资值并计算州税和联邦税。我被难住了,我在互联网上找不到任何可以为我提供工作的好例子。这些例子要么简单,要么超级复杂。任何帮助都将不胜感激。

如果我没有以正确的格式提交此问题,我提前道歉。这是我第一次在stackoverflow上请求帮助。

代码语言:javascript
复制
function readForm() {

        var returnData = {};
        returnData.name = $("#name").val();
        returnData.lastName = $("#lastName").val();
        returnData.age = $("#age").val();
        returnData.gender = $("[name=gender]:checked").val();
        returnData.salary = $("#salary").val();
        returnData.isManager = $("#isManager").val();
        returnData.myTextArea = $("#myTextArea").val();

        $("#name2").text(returnData.name);
        $("#lastName2").text(returnData.lastName);
        $("#age2").text(returnData.age);
        $("#gender2").text(returnData.gender);
        $("#salary2").text(returnData.salary);
        $("#myTextArea2").text(returnData.myTextArea);

        if ($(isManager).is(':checked')) {

            $("#isManager2").text("Yes");
        }
        else {
            $("#isManager2").text("No");
        }

        //$("#employeeForm")[0].reset();


    } //end of readForm function 

    function calculateTax() {

        console.log("Button Works");

    var calculateTax = {
        state: function(num) {
            num *= 0.09;
            return num;
        }
        , federal: function(num) {
            if (num > 10000) {
                num *= 0.2;
                return num;
            }
            else {
                num * 0.1;
                return num;
            }

        }
        , exempt: true
    };

    }

    //Invoke readForm function when the submit button is clicked.

    $(document).ready(function () {
        $("#btnSubmit").on("click", readForm);
        $("#btnCalculate").on("click", calculateTax);
    })

</script>
EN

回答 1

Stack Overflow用户

发布于 2018-02-20 11:03:00

嗯,简单地说;你不能。至少不是这样的。或者,至少不将值直接传递给函数。

您现在正在使用全局函数,这些函数不在类中。如果它在类中,您可以实例化该类并将其保存到this (这将是类的实例)。然而,我假设在这种情况下类有点太复杂了。你可以做的,是全局设置变量,这样所有的函数都可以使用它们,就像这样;

代码语言:javascript
复制
//declare the global variable so it exists for every function     
var returnData = {};

function readForm() {

        //We do NOT redeclare the "var" again. It's global now.
        returnData = {}; //Reset the global variable when this function is called
        returnData.name = $("#name").val();
        returnData.lastName = $("#lastName").val();
        returnData.age = $("#age").val();
        returnData.gender = $("[name=gender]:checked").val();
        returnData.salary = $("#salary").val();
        returnData.isManager = $("#isManager").val();
        returnData.myTextArea = $("#myTextArea").val();

       //Rest of your function
}
function calculateTax(){
  console.log(returnData) //works here
}

请注意,您确实覆盖了全局变量,因此最好在每次函数调用时重置它们。否则,您可能会将旧数据卡在其中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48877165

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档