首页 > 解决方案 > 你真的可以有不同的参数名称但相同的功能吗?

问题描述

(对不起,我的英语不好!!)

很难解释,因为英语不是我的主要语言,但我只是写了这段代码:

function calculateAge(yearBorn){

    return 2020 - yearBorn;
}

var johnAge = calculateAge(1990);
var janeAge = calculateAge(2000);
var stevenAge = calculateAge(1998);

console.log(johnAge, janeAge, stevenAge);

function yearsUntilRetirement(currentAge, name){
    var age = calculateAge(currentAge);

    var retirementYear = 65 - age;

    console.log(name + ' retires in ' + retirementYear + ' years ');
}

yearsUntilRetirement(2000, "Alex");

这工作得很好,我想知道为什么!

我有一个返回年龄(function calculateAge(yearBorn))的函数,我在另一个函数中使用该函数yearsUntilRetirement

在第一个函数中,只有一个参数,它是yearBorn, 而另一方面,即使我使用相同的函数但使用不同的参数名称calculateAge(currentAge)而不是calculateAge(yearBorn). 这也有效!

这是怎么回事?

即使函数相同或什么,我可以有不同的参数名称吗?

标签: javascript

解决方案


你可以把参数想象成盒子,最后它只是被填充了一些值。如果你通过1或者你有1一个名为 的变量numberOne,当函数运行时它会得到相同的东西。

例如,我们可以有一个名为 的函数sum

function sum(a, b) {
  return a + b;
}

以下是一些调用它的方法:

// Directly using integers
sum(1, 2);

// Using variables;
var firstNumber = 1;
var secondNumber = 2;

sum(firstNumber, secondNumber);

在这两种情况下,当您运行函数sum时,参数a和分别b获取值12。您在函数内命名参数无关紧要,也不会影响传递的值。

要记住的一件事是参数的顺序很重要。如果你调用sumassum(secondNumber, firstNumber)值会翻转,你可能不会想要那样。因此,在调用函数时请记住顺序。


推荐阅读