【问题标题】:how to pass argument to child function in js如何在js中将参数传递给子函数
【发布时间】:2022-08-11 23:36:49
【问题描述】:
function checkSalary(baseSalary, bonus, tax) {
    console.log(baseSalary, bonus, tax)
    function salary(baseSalary, bonus) {
        console.log(baseSalary, bonus)
        return baseSalary + bonus;
    }
    function salary_with_tax(tax) {
        console.log(tax)

        return salary() - tax;
    }
}

console.log(checkSalary(5000, 3000, 100))


我想检查使用salary() 和salary_with_tax() 但不知道如何传递参数。

  • \"我要检查\" ....什么你想检查一下吗?这个问题不清楚。你想做什么?
  • 这里奇怪的是外部函数中的两个函数没有被调用。它们的定义很简单。在某处调用它们以使用它们的返回值。
  • 我的意思是,两个函数的结果都带有我正在传递的参数

标签: javascript


【解决方案1】:

您必须在某个时候调用您的内部函数。像这样的东西:

我不得不对你想要什么做出一些假设。我返回了一个包含每个内部函数结果的对象。

function checkSalary(baseSalary, bonus, tax) {
    console.log(baseSalary, bonus, tax)
    function salary(baseSalary, bonus) {
        console.log(baseSalary, bonus)
        return baseSalary + bonus;
    }
    function salary_with_tax(tax) {
        console.log(tax)

        return salary(baseSalary, bonus) - tax;
    }
    
    return {
      salary: salary(baseSalary, bonus),
      tax: salary_with_tax(tax)
    }
}

console.log(checkSalary(5000, 3000, 100))

【讨论】:

    【解决方案2】:

    Javascript 很像许多语言,您可以在其他函数中定义函数,但直到您真正称呼该功能没有任何反应。只需调用内部函数并获取结果并随心所欲地处理它

    function checkSalary(baseSalary, bonus, tax) {
    
        function salary() {
            
            return baseSalary + bonus;
        }
        function salary_with_tax() {
            return salary() - tax;
        }
        
        const theSalary = salary()
        const theSalaryWithTax = salary_with_tax();
        
        console.log(theSalary, theSalaryWithTax);
        
        return "Foo"; // you can "check" whatever you like here, and return something more appropriate
    }
    
    console.log(checkSalary(5000, 3000, 100))

    【讨论】:

      猜你喜欢
      • 2015-08-16
      • 2021-08-28
      • 2014-08-16
      • 2013-08-08
      • 1970-01-01
      • 1970-01-01
      • 2023-01-22
      • 2015-10-30
      相关资源
      最近更新 更多