javascript - 你真的可以有不同的参数名称但相同的功能吗?
问题描述
(对不起,我的英语不好!!)
很难解释,因为英语不是我的主要语言,但我只是写了这段代码:
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)
. 这也有效!
这是怎么回事?
即使函数相同或什么,我可以有不同的参数名称吗?
解决方案
你可以把参数想象成盒子,最后它只是被填充了一些值。如果你通过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
获取值1
和2
。您在函数内命名参数无关紧要,也不会影响传递的值。
要记住的一件事是参数的顺序很重要。如果你调用
sum
assum(secondNumber, firstNumber)
值会翻转,你可能不会想要那样。因此,在调用函数时请记住顺序。
推荐阅读
- ios - Flutter iOS 14.0 构建错误:无法向 mDNS 注册天文台端口
- ios - swiftUI 在后台检测应用程序终止
- bash - 如何将shell的机器人(子进程)的输出设置为bash中的环境变量
- python - 获取具有最小值的行的日期
- r - R foreach:并行读取和操作多个文件
- python - 如何在 Python 中将十六进制数转换为浮点数
- c# - (Powershell & C#) ExchangeOnline Cmdlets 部分工作
- java - 我应该添加什么来打印我在驱动程序课程中通过的所有问题?
- python - 使用 seaborn/matplotlib 基于 y 轴在 seaborn 图上着色水平条
- django - 带有过滤连接的 Django