gpt4 book ai didi

javascript - 从函数内部的对象传递值

转载 作者:行者123 更新时间:2023-12-03 02:27:40 25 4
gpt4 key购买 nike

我一整天都在努力将“readData”函数中的“returnData.salary”的值传递给“calculateTax”函数内的对象应该获取工资值并计算州税和联邦税。我很困惑,我在互联网上找不到任何可以为我提供工作的好例子的东西。这些示例要么非常简单,要么非常复杂。任何帮助将不胜感激。

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

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>

最佳答案

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

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

//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
}

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

关于javascript - 从函数内部的对象传递值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48877165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com